Opened 19 months ago

Last modified 4 months ago

#67183 new defect

Error while installing sunshine with local source — at Version 2

Reported by: andrygamer06 Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: Cc: andrygamer06
Port:

Description (last modified by ryandesign (Ryan Carsten Schmidt))

To whom it may concern,

I have been struggling in the last few hours with this and I am sorry if it's a dumb thing easy to solve. I have been following this guide: https://docs.lizardbyte.dev/projects/sunshine/en/latest/about/installation.html to be able to get the software sunshine to work on my m1 MacBook. As stated in the guide I add the local source in the following file: /opt/local/etc/macports/sources.conf. After I add the source the file looks like this (I edited it with the terminal using this command: sudo nano /opt/local/etc/macports/sources.conf):

#
# To change how MacPorts fetches base, see rsync_server and rsync_dir in
# macports.conf.

# To add a local source, add a "file://" entry.
#
#   Example: file:///Users/landonf/misc/MacPorts/ports
#
# To prevent a source from synchronizing when `port sync` is used,
# append "[nosync]" at the end.
#
#   Example: file:///Users/landonf/misc/MacPorts/ports [nosync]
#
# Note that MacPorts parses source URLs in order; when a port appears in
# multiple sources, it installs the first occurrence. For local sources
# to shadow remote ones, "file://" URLs must come before other URLs.

# A list of rsync mirrors is available at
# https://trac.macports.org/wiki/Mirrors#Portfiles.
#
# If an "rsync://" URL points to a .tar file, a signed .rmd160 file must
# exist in the same directory on the server and will be used to verify
# its integrity.
#
# For proper functionality of various resources (port groups, mirror
# sites, etc.), the primary MacPorts source must always be tagged
# "[default]", even if switched from the default "rsync://" URL.

rsync://rsync.macports.org/macports/release/tarballs/ports.tar [default]

file:///Users/andrei******/ports (family name censored here)

Everything works fine until I type the command sudo port install sunshine, which leads to the following error: Error: Port sunshine not found. I really do not know hoe to upload files here but this is the directory of the Portfile, maybe it helps: /Users/andrei*******/ports/multimedia/sunshine/Portfile

This are the contents of the Portfile:

# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4

# initial PR into macports: https://github.com/macports/macports-ports/pull/15143

PortSystem               1.0
PortGroup                cmake 1.1
PortGroup                github 1.0
PortGroup                boost 1.0

name                     @PROJECT_NAME@
version                  @PROJECT_VERSION@
revision                 0
categories               multimedia emulators games
platforms                darwin
license                  GPL-3
maintainers              @LizardByte
description              @PROJECT_DESCRIPTION@

# long_description will not be split into multiple lines as it's configured by CMakeLists
long_description         @PROJECT_LONG_DESCRIPTION@
homepage                 @PROJECT_HOMEPAGE_URL@
master_sites             https://github.com/lizardbyte/sunshine/releases

compiler.cxx_standard    2017
fetch.type               git

git.url                  @GITHUB_CLONE_URL@
git.branch               @GITHUB_COMMIT@

post-fetch {
    system -W ${worksrcpath} "${git.cmd} submodule update --init --recursive"
}

depends_lib              port:avahi \
                         port:curl \
                         port:libopus \
                         port:npm9 \
                         port:pkgconfig

boost.version            1.80

configure.args           -DCMAKE_INSTALL_PREFIX=${prefix} \
                         -DSUNSHINE_ASSETS_DIR=etc/sunshine/assets

startupitem.create       yes
startupitem.executable   "${prefix}/bin/{$name}"
startupitem.location     LaunchDaemons
startupitem.name         ${name}
startupitem.netchange    yes

platform darwin {
    if { ${os.major} < 20 } {
        # See: https://github.com/LizardByte/Sunshine/discussions/117#discussioncomment-2513494
        notes-append "Port is limited to software encoding, when used with macOS releases prior to Big Sur."
    }
}

pre-build {
    system -W ${worksrcpath} "npm install"
}

notes-append "Run @PROJECT_NAME@ by executing 'sunshine <path to user config>', e.g. 'sunshine ~/sunshine.conf' "
notes-append "The config file will be created if it doesn't exist."
notes-append "It is recommended to set a location for the apps file in the config."
notes-append "See our documentation at 'https://docs.lizardbyte.dev/projects/sunshine/en/v@PROJECT_VERSION@/' for further info."

If it is ok for you I can upload every screenshot on google drive (even as a pdf) so you can take a look at them,

I hope you can tell me how to fix this issue,

Regards,
Andrei

Change History (2)

comment:1 Changed 19 months ago by andrygamer06

Cc: andrygamer06 added

comment:2 Changed 19 months ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Keywords: Sunshine Help Local source removed
Milestone: MacPorts Future
Priority: HighNormal

This isn't really our bug since this port is not in the macports-ports repository.

In the instructions you referred to, I don't see an explanation of where to get the Portfile from. It appears you used the copy of the Portfile available here: https://github.com/LizardByte/Sunshine/blob/master/packaging/macos/Portfile

That won't work because it appears to be just a template. Note the placeholders like @PROJECT_NAME@ and @PROJECT_VERSION@. Those would need to be replaced with real values. It appears that the sunshine cmake configuration process might do this for you, so try doing that. It probably won't replace the placeholders in the template; it will create a new Portfile somewhere else in which the placeholders have been filled in. That new file is the one you would put in your ~/ports/... directory.

It is weird of them to have a Portfile in their repository. The correct thing to do is to submit the Portfile to the macports-ports repository, which is where it would be maintained from that point on. As noted in a comment in the Portfile text, they did do this in https://github.com/macports/macports-ports/pull/15143 but the request was closed without explanation.

Note: See TracTickets for help on using tickets.