пишем в SRC_URI
https://www.nuget.org/api/v2/package/Microsoft.AspNet.Mvc/5.2.3 -> Microsoft.AspNet.Mvc.5.2.3.zip
скачается он в директорию
${DISTDIR} Contains the path to the directory where all the files fetched for the package are stored.
откуда можно будет скопировать его в локальный репозиторий nuget на фазе инсталляции
Если можно прописывать в SRC_URI, то зачем тогда нужна функция enuget_download_rogue_binary ?
https://github.com/gentoo/dotnet/blob/master/eclass/nupkg.eclass#L57-L73
ну, она не использует (не захламляет) зеркало gentoo враждебными пакетами из репозитория Microsoft
ошибка при сборке
Следующий текст:
Unable to find version '5.2.3' of package 'Microsoft.AspNet.Mvc'
Как делал в прошлый раз
https://github.com/gentoo/dotnet/blob/db1dbda18cc2cd74432cd3ec4050468e964d1857/dev-dotnet/x-pagedlist/x-pagedlist-1.24.0.23549-r201512120.ebuild#L52-L59
src_unpack()
{
default
enuget_download_rogue_binary "Microsoft.Web.Infrastructure" "1.0.0.0"
enuget_download_rogue_binary "Microsoft.AspNet.WebPages" "3.2.3"
enuget_download_rogue_binary "Microsoft.AspNet.Razor" "3.2.3"
enuget_download_rogue_binary "Microsoft.AspNet.Mvc" "5.2.3"
}
Поменять eclass
Надо разделить функцию на две - отдельно скачивание в ${T}, отдельно распаковка/установка в указанную директорию из данной директории (A->B)
потому что
во-первых, скачивать можно через SRC_URI (хотя это и не особо хорошо)
во-вторых, установка не всегда нужна
Сделать ebuild
Сделать отдельный ебилд с функцией enuget_download_rogue_binary можно,
но тогда локальный репозиторий уже не будет содержать только пакеты, собранные из исходников
устанавливать надо будет копированием из ${T} в директорию-репозиторий NuGet
это несложно:
https://github.com/gentoo/dotnet/blob/db1dbda18cc2cd74432cd3ec4050468e964d1857/eclass/nupkg.eclass#L97-L98
insinto $(get_nuget_trusted_archives_location)
doins "$@"
можно воспользоваться именно функцией enupkg "${T}/{$P}.nupkg", а у пакета прописать USE="+nupkg"
cd /var/lib/layman/shnurise
mkdir -p dev-dotnet/Microsoft.AspNet.Mvc
cd dev-dotnet/Microsoft.AspNet.Mvc
leafpad Microsoft.AspNet.Mvc-5.2.3.ebuild
Зависимости в .nuspec
ну, в принципе всё ок, только надо ещё что-то сделать с зависимостями:
Attempting to resolve dependency 'Microsoft.AspNet.WebPages (≥ 3.2.3 && < 3.3.0)'.
Unable to resolve dependency 'Microsoft.AspNet.WebPages (≥ 3.2.3 && < 3.3.0)'.
Microsoft.AspNet.Mvc
5.2.3
Microsoft ASP.NET MVC
Microsoft
Microsoft,aspnet
http://www.microsoft.com/web/webpi/eula/net_library_eula_ENU.htm
http://www.asp.net/mvc
http://go.microsoft.com/fwlink/?LinkID=288859
true
This package contains the runtime assemblies for ASP.NET MVC. ASP.NET MVC gives you a powerful, patterns-based way to build dynamic websites that enables a clean separation of concerns and that gives you full control over markup.
This package contains the runtime assemblies for ASP.NET MVC.
Please visit http://go.microsoft.com/fwlink/?LinkID=403009 to view the release notes.
© Microsoft Corporation. All rights reserved.
en-US
Microsoft AspNet Mvc AspNetMvc
Microsoft.AspNet.WebPages
3.2.3
Microsoft ASP.NET Web Pages
Microsoft
Microsoft,aspnet
http://www.microsoft.com/web/webpi/eula/net_library_eula_ENU.htm
http://www.asp.net/web-pages
http://go.microsoft.com/fwlink/?LinkID=288859
true
This package contains core runtime assemblies shared between ASP.NET MVC and ASP.NET Web Pages.
This package contains core runtime assemblies shared between ASP.NET MVC and ASP.NET Web Pages.
Please visit http://go.microsoft.com/fwlink/?LinkID=403011 to view the release notes.
© Microsoft Corporation. All rights reserved.
en-US
Microsoft AspNet WebPages AspNetWebPages
Unable to find version '5.5.1' of package 'ICSharpCode.NRefactory'.
Unable to find version '0.9.5.4' of package 'Mono.Cecil'.
Unable to find version '1.0.81' of package 'LibGit2Sharp.NativeBinaries'.
Unable to find version '3.0.1' of package 'NUnit.Engine'.