dropbox / dropbox/nautilus-dropbox

How Does Make Determine where to Install? (packaging for GNU Guix distro)

Open
#113 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
Python
Stars
276
Forks
68
Avg merge
1d 22h
Merged PRs (30d)
2

Description

As I mention in the title, I'm trying to package this for Guix and I think that I've almost got things.

Most files get installed to the right directly but the `libnautilus-dropbox.so` file is attempting to be installed to the Nautilus package's directory.

Guix's functional nature means that each package lives in their own directory and the right approach would be to install `libnautilus-dropbox.so` in the directory of this package and Guix will take care of properly exposing it.

So, right now, I'm getting this error:

> /gnu/store/d251rfgc9nm2clzffzhgiipdvfvzkvwi-coreutils-8.32/bin/mkdir -p '/gnu/store/jb1ghi4gyr349l5jk147xxmsp1f3964s-nautilus-42.2/lib/nautilus/extensions-3.0'
>
> /gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash ../libtool --mode=install /gnu/store/d251rfgc9nm2clzffzhgiipdvfvzkvwi-coreutils-8.32/bin/install -c libnautilus-dropbox.la '/gnu/store/jb1ghi4gyr349l5jk147xxmsp1f3964s-nautilus-42.2/lib/nautilus/extensions-3.0'
>
> libtool: install: /gnu/store/d251rfgc9nm2clzffzhgiipdvfvzkvwi-coreutils-8.32/bin/install -c .libs/libnautilus-dropbox.so /gnu/store/jb1ghi4gyr349l5jk147xxmsp1f3964s-nautilus-42.2/lib/nautilus/extensions-3.0/libnautilus-dropbox.so
>
> /gnu/store/d251rfgc9nm2clzffzhgiipdvfvzkvwi-coreutils-8.32/bin/install: cannot create regular file '/gnu/store/jb1ghi4gyr349l5jk147xxmsp1f3964s-nautilus-42.2/lib/nautilus/extensions-3.0/libnautilus-dropbox.so': Permission denied
>
> make[2]: *** [Makefile:409: install-nautilus_extensionLTLIBRARIES] Error 1
>
> make[2]: Leaving directory '/tmp/guix-build-dropbox-nautilus-2020.03.04.drv-0/source/src'
>
> make[1]: *** [Makefile:631: install-am] Error 2
>
> make[1]: Leaving directory '/tmp/guix-build-dropbox-nautilus-2020.03.04.drv-0/source/src'
>
> make: *** [Makefile:520: install-recursive] Error 1
>
> error: in phase 'install': uncaught exception:
>
> %exception #<&invoke-error program: "make" arguments: ("install") exit-status: 2 term-signal: #f stop-signal: #f>

when I need to install `libnautilus-dropbox.so` to `/lib/nautilus/extensions-3.0/libnautilus-dropbox.so`.

But I can't figure out, for the life of me, how to do that or even the point `make` is installing to the Nautilus directory.

Any help or pointers would be amazing so I could get this working on Guix and submit it to the Guix repo.s.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in src/Makefile around the install-nautilus_extensionLTLIBRARIES rule at Makefile:409, then trace the libtool install command shown in the report to see where the Nautilus extension directory is set. Done means the install step places libnautilus-dropbox.so under the package's own lib/nautilus/extensions-3.0 directory and completes without the permission error.

Written by the indexing model from the issue text.

Assessment

Domain
build-system, desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.