[Shotwell] Building shotwell from trunk

David Velazquez david.velazquez08 at gmail.com
Fri Jun 4 12:13:05 PDT 2010


Thanks Bruno, Jim, this clears some things up for me. I went ahead and used
my sudo powers to install  gexiv2 which Shotwell promptly found. Inevitably
shotwell failed at finding libraw, but that was my own doing ;). It seems I
may have to compile that to.

>From the conversation we've been having it appears to me that Shotwell is
not capable of installing to a local directory unless it's dependencies,
gexiv2 (amongst others) are installed in the standard locations where
pkg-config would look for them. I'm sure it's more complicated than that,
but hopefully I got the gist of it. I bet the majority of users have no
problems with this since most of them will use a binary deb file (for
instance), the PPA, or the release in their distro of choice.

In the case of someone with no root or sudo powers who wants to use Shotwell
it seems they're out of luck for now since certain dependencies don't appear
to be in the repository and they would not have access to them even if they
were. The reason I mentioned deluge previously was to bring up the fact that
deluge and all the things it depends on are capable of being compiled in a
users local directory with no need for root powers. I don't think this is a
use case that comes up often, however, it's probably not one that should be
ignored.

If I am correct in these assumptions, and you agree with me, I will go ahead
and ticket this idea that Shotwell and it's direct dependencies that Yorba
works on should be able to be built locally. I understand one has no control
over those that are not built by Yorba directly.

Dave

On Fri, Jun 4, 2010 at 2:46 PM, Jim Nelson <jim at yorba.org> wrote:

> So, PREFIX is used to declare the base directory for a whole host of
> files being installed.  Thus, with your prefix, the following files
> will be installed as follows:
>
> /home/dave/shotwell/gexiv2/lib/libgexiv2.la
> /home/dave/shotwell/gexiv2/include/gexiv2.h (and more header files)
> /home/dave/shotwell/gexiv2/lib/pkgconfig/gexiv2.pc
> /home/dave/shotwell/gexiv2/share/vala/vapi/gexiv2.vapi
>
> I see two immediate problems here.
>
> First, because gexiv2.pc is stored in a non-standard location,
> pkg-config can't find it.  Shotwell's Makefile relies on pkg-config
> locating gexiv2 to (a) verify gexiv2 is installed and (b) to get
> necessary gcc flags for building Shotwell with gexiv2.  This is what
> the PKG_CONFIG_PATH message is telling you.
>
> Second, the VAPI file is also in a non-standard location.  valac needs
> to be told of this additional VAPI directory.  I don't know of any
> environment variable that can be used to direct valac to this
> directory, you have to specify it on the command-line with --vapidir.
> Shotwell's Makefile currently doesn't allow you to specify that with
> the configure script ... if this is important, I'll let you ticket
> this.  You can modify Shotwell's Makefile directly in the interim.
>
> I would point out that unlike deluge, gexiv2 is a library, not a
> program, and therefore must be locatable for programs to build and
> execute.
>
> -- Jim
>
> On Fri, Jun 4, 2010 at 10:57 AM, David Velazquez
> <david.velazquez08 at gmail.com> wrote:
> > Thanks for the tips but I did not want to install shotwell to the system
> > directories. Call it stubbornness :)  Is there anyway to install it
> locally
> > like Bengt suggested, in ~/unstable/shotwell
> >
> > I thought I had been specifying the prefix in ./configure which is why I
> > attempted to run make install without sudo. Does make accept the prefix
> > parameter like ./configure does?
> >
> > There must be a way to install without sudo here. I've done it for
> programs
> > like deluge in the past which normally require root powers to install.
> >
> >
> >
> >
> >
> > On Fri, Jun 4, 2010 at 10:32 AM, Bengt Thuree <bengt at thuree.com> wrote:
> >
> >> Or specify the prefix parameter and install in ~/unstable/shotwell ....
> >>
> >> On Fri, 2010-06-04 at 12:24 +0100, Bruno Girin wrote:
> >> > David,
> >> >
> >> > As Mattias pointed out, you need to be root to run make install, so on
> >> > Ubuntu, you would do:
> >> >
> >> > $ make
> >> > $ sudo make install
> >> >
> >> > Everything is installed in /usr/local so is completely separate from
> >> > what is installed through apt-get or Synaptic. I've got it working
> fine
> >> > on my Lucid laptop.
> >> >
> >> > Bruno
> >> >
> >> > On Fri, 2010-06-04 at 11:44 +0300, Mattias Põldaru wrote:
> >> > > Sorry, I was wrong here, as I did not read your letter thoroughly.
> >> > >
> >> > > You definitely need to run make install with sudo, since it has to
> >> > > install to system directories, where user cannot write to.
> >> > >
> >> > > Actually in the install instructions there is written "# make
> install",
> >> > > where # refers to a command which needs to be run as root (or with
> >> > > sudo), as opposed to $ which refers to a ordinary user.
> >> > >
> >> > >
> >> > > Mattias
> >> > >
> >> > >
> >> > > Ühel kenal päeval, R, 2010-06-04 kell 02:11, kirjutas David
> Velazquez:
> >> > > > Hey, I have exiv2, libexiv2-6, and libexiv2-dev already installed.
> >> Try
> >> > > > as I might I can't seem to get shotwell to complain about anything
> >> > > > other than gexiv2 which, according to the output, should have been
> >> > > > compiled properly.
> >> > > >
> >> > > > The only thing apt-get build-dep shotwell wants to install is
> >> > > > libhal-dev which is no longer needed when building from trunk. I
> have
> >> > > > libgudev which replaces it though.
> >> > > >
> >> > > > Thanks for the tips.
> >> > > >
> >> > > > On Fri, Jun 4, 2010 at 1:37 AM, Mattias Põldaru <
> mahfiaz at gmail.com>
> >> > > > wrote:
> >> > > >         To build you need header files, which are in *-dev
> packages.
> >> > > >         Install
> >> > > >         libexiv2-dev and see if this makes shotwell compile (or
> >> > > >         complain about
> >> > > >         another dependency).
> >> > > >         If you hit another dependency apt-get search exiv (or
> >> whatever
> >> > > >         it
> >> > > >         complains about) and install corresponding package.
> >> > > >
> >> > > >         All dependencies for the version in repository can be
> >> > > >         installed with
> >> > > >         apt-get build-dep packagename
> >> > > >
> >> > > >         http://yorba.org/shotwell/install/
> >> > > >
> >> > > >
> >> > > >         Mattias
> >> > > >
> >> > > >
> >> > > >         Ühel kenal päeval, R, 2010-06-04 kell 01:18, kirjutas
> David
> >> > > >         Velazquez:
> >> > > >
> >> > > >         > I'm confident I'm doing something simple wrong,
> somewhere,
> >> > > >         but I can't seem
> >> > > >         > to build shotwell from trunk in Lucid
> >> > > >         >
> >> > > >         > Right now it's saying that it can't find gexiv2 and
> >> > > >         suggesting I change the
> >> > > >         > PKG_CONFIG_PATH.
> >> > > >         >
> >> > > >         > I understand gexiv2 needed to be built from scratch as
> well
> >> > > >         so I pulled it
> >> > > >         > and compiled it in ~/shotwell/gexiv2 using:
> >> > > >         >
> >> > > >         >  ./configure --prefix=/home/dave/shotwell/gexiv2
> >> > > >         > make
> >> > > >         > make install
> >> > > >         >
> >> > > >         > The only error I get from gexiv2 occurs during make
> install
> >> > > >         and is this:
> >> > > >         >
> >> > > >         > /sbin/ldconfig.real: Can't create temporary cache
> >> > > >         file /etc/ld.so.cache~:
> >> > > >         > Permission denied
> >> > > >         > make: [install] Error 1 (ignored)
> >> > > >         >
> >> > > >         > I assume this is due to me not using sudo and it not
> being
> >> > > >         able to write to
> >> > > >         > /etc/ld.so.cache
> >> > > >         > Is this enough to prevent gexiv2 from building properly
> and
> >> > > >         therefore
> >> > > >         > shotwell from using it?
> >> > > >         >
> >> > > >         >
> >> > > >         > Shotwell itself is being built (or attempting to be
> built)
> >> > > >         in ~/shotwell
> >> > > >         > using the command ./configure
> --prefix=/home/dave/shotwell
> >> > > >         >
> >> > > >         > The dependencies for gexiv2
> (exiv2,libexiv2,libexiv2-dev)
> >> > > >         were installed
> >> > > >         > from Ubuntu's repositories.
> >> > > >         >
> >> > > >         > I've tried moving the installation for gexiv2 to
> someplace
> >> > > >         outside of
> >> > > >         > ~/shotwell to no avail.
> >> > > >         >
> >> > > >         > I'd appreciate any help.
> >> > > >         >
> >> > > >         > Dave
> >> > > >
> >> > > >         > _______________________________________________
> >> > > >         > Shotwell mailing list
> >> > > >         > Shotwell at lists.yorba.org
> >> > > >         >
> http://lists.yorba.org/cgi-bin/mailman/listinfo/shotwell
> >> > > >
> >> > > >
> >> > > >
> >> > >
> >> > >
> >> > >
> >> > > _______________________________________________
> >> > > Shotwell mailing list
> >> > > Shotwell at lists.yorba.org
> >> > > http://lists.yorba.org/cgi-bin/mailman/listinfo/shotwell
> >> >
> >> >
> >> > _______________________________________________
> >> > Shotwell mailing list
> >> > Shotwell at lists.yorba.org
> >> > http://lists.yorba.org/cgi-bin/mailman/listinfo/shotwell
> >>
> >>
> >> _______________________________________________
> >> Shotwell mailing list
> >> Shotwell at lists.yorba.org
> >> http://lists.yorba.org/cgi-bin/mailman/listinfo/shotwell
> >>
> > _______________________________________________
> > Shotwell mailing list
> > Shotwell at lists.yorba.org
> > http://lists.yorba.org/cgi-bin/mailman/listinfo/shotwell
> >
>



More information about the Shotwell mailing list