[haiku-bugs] Re: [Haiku] #12905: package_repo requires a url in repo-info file which needs eval

  • From: "kallisti5" <trac@xxxxxxxxxxxx>
  • Date: Wed, 10 Aug 2016 03:47:00 -0000

#12905: package_repo requires a url in repo-info file which needs eval
---------------------------+----------------------------
   Reporter:  kallisti5    |      Owner:  nobody
       Type:  enhancement  |     Status:  new
   Priority:  normal       |  Milestone:  Unscheduled
  Component:  - General    |    Version:  R1/Development
 Resolution:               |   Keywords:  package_repo
 Blocked By:               |   Blocking:
Has a Patch:  0            |   Platform:  All
---------------------------+----------------------------

Comment (by kallisti5):

 {{{
 kallisti5@ares package :) $ grep -R url * | grep -v Package
 RepositoryConfig.cpp:           << "url=" << fBaseURL << "\n"
 RepositoryConfig.cpp:   const char* url =
 driverSettings.GetParameterValue("url");
 RepositoryConfig.cpp:   if (url == NULL || *url == '\0')
 RepositoryConfig.cpp:   fBaseURL = url;
 RepositoryInfo.cpp:const char* const BRepositoryInfo::kURLField
 = "url";
 RepositoryInfo.cpp:BRepositoryInfo::SetOriginalBaseURL(const BString& url)
 RepositoryInfo.cpp:     fOriginalBaseURL = url;
 RepositoryInfo.cpp:     const char* url =
 get_driver_parameter(settingsHandle, "url", NULL, NULL);
 RepositoryInfo.cpp:     if (name == NULL || *name == '\0' || url == NULL
 || *url == '\0'
 RepositoryInfo.cpp:     fOriginalBaseURL = url;
 }}}

 So BRepositoryConfig's fBaseURL, PackagesURL(), and BaseURL() use it...

 {{{
 kallisti5@ares package :( $ egrep -R "PackagesURL\(|BaseURL\(" *
 ActivateRepositoryConfigJob.cpp:
 fRepositoryBaseURL(repositoryBaseURL),
 ActivateRepositoryConfigJob.cpp:
 repoConfig.SetBaseURL(fRepositoryBaseURL);
 AddRepositoryRequest.cpp:       fRepositoryBaseURL(repositoryBaseURL),
 manager/PackageManager.cpp:                     BString url =
 remoteRepository->Config().PackagesURL();
 RefreshRepositoryRequest.cpp:           = BString(fRepoConfig.BaseURL())
 << "/" << "repo.sha256";
 RefreshRepositoryRequest.cpp:           BString("Fetching repository
 checksum from ") << fRepoConfig.BaseURL(),
 RefreshRepositoryRequest.cpp:   BString repoCacheURL =
 BString(fRepoConfig.BaseURL()) << "/" << "repo";
 RefreshRepositoryRequest.cpp:           BString("Fetching repository-cache
 from ") << fRepoConfig.BaseURL(),
 RepositoryConfig.cpp:   fBaseURL(baseURL),
 RepositoryConfig.cpp:BRepositoryConfig::BaseURL() const
 RepositoryConfig.cpp:BRepositoryConfig::PackagesURL() const
 RepositoryConfig.cpp:BRepositoryConfig::SetBaseURL(const BString& baseURL)
 RepositoryInfo.cpp:BRepositoryInfo::OriginalBaseURL() const
 RepositoryInfo.cpp:BRepositoryInfo::SetOriginalBaseURL(const BString& url)
 }}}

 Since the user provides the repo URL to gain access to the repo, it all
 seems extremely illogical to then re-read the repo config file and
 potentially re-adjust where the repo is?

--
Ticket URL: <https://dev.haiku-os.org/ticket/12905#comment:1>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: