Github messages for voidlinux
 help / color / Atom feed
* [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
@ 2020-07-06 23:50 ericonr
  2020-07-06 23:54 ` [RFC][WIP] " ericonr
                   ` (22 more replies)
  0 siblings, 23 replies; 24+ messages in thread
From: ericonr @ 2020-07-06 23:50 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 1058 bytes --]

There is a new pull request by ericonr against master on the void-packages repository

https://github.com/ericonr/void-packages gcompat
https://github.com/void-linux/void-packages/pull/23432

[RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
Okay, so this is a biggie PR, and I do need help for making some decisions.

- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `_strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?

A patch file from https://github.com/void-linux/void-packages/pull/23432.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcompat-23432.patch --]
[-- Type: text/x-diff, Size: 118043 bytes --]






<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
  <link rel="dns-prefetch" href="https://github.githubassets.com">
  <link rel="dns-prefetch" href="https://avatars0.githubusercontent.com">
  <link rel="dns-prefetch" href="https://avatars1.githubusercontent.com">
  <link rel="dns-prefetch" href="https://avatars2.githubusercontent.com">
  <link rel="dns-prefetch" href="https://avatars3.githubusercontent.com">
  <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
  <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">



  <link crossorigin="anonymous" media="all" integrity="sha512-/uy49LxdzjR0L36uT6CnmV1omP/8ZHxvOg4zq/dczzABHq9atntjJDmo5B7sV0J+AwVmv0fR0ZyW3EQawzdLFA==" rel="stylesheet" href="https://github.githubassets.com/assets/frameworks-feecb8f4bc5dce34742f7eae4fa0a799.css" />
  <link crossorigin="anonymous" media="all" integrity="sha512-0Dq+Bdp4xIEoUQ6d8RzDMUJdGejYZhWcZUh+JZDfYn/RCdp7u4QhKG8ABLNmvxL5YobdxQCLJaaacKNyIp8L2w==" rel="stylesheet" href="https://github.githubassets.com/assets/site-d03abe05da78c48128510e9df11cc331.css" />
    <link crossorigin="anonymous" media="all" integrity="sha512-0qkCidPfjGd13b0fW6wxCDkXzbVws8nxr4qKcjzipVrgHdfSp2yLXje75iRFjmfBiEyvnrj+L1bIq64Cup9JeQ==" rel="stylesheet" href="https://github.githubassets.com/assets/github-d2a90289d3df8c6775ddbd1f5bac3108.css" />
    
    
    
    


  <meta name="viewport" content="width=device-width">
  
  <title>[RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack by ericonr · Pull Request #23432 · void-linux/void-packages · GitHub</title>
    <meta name="description" content="Okay, so this is a biggie PR, and I do need help for making some decisions.

So, basically, gcompat can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn&#39;t working completely yet.
I enabled obstack in gcompat, by enabling the dynamic lib in musl-obstack. This completely fixes #22616, which needed obstack and _strftime_l symbols (the latter was fixed by gcompat itself).
I split musl-obstack-devel.
I switched package dependencies to musl-obstack-devel, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?">
    <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
  <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
  <meta property="fb:app_id" content="1401488693436528">
  <meta name="apple-itunes-app" content="app-id=1477376905">

    <meta name="twitter:image:src" content="https://avatars1.githubusercontent.com/u/37247796?s=400&amp;v=4" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary" /><meta name="twitter:title" content="[RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack by ericonr · Pull Request #23432 · void-linux/void-packages" /><meta name="twitter:description" content="Okay, so this is a biggie PR, and I do need help for making some decisions.

So, basically, gcompat can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn&amp;amp;#39;t wor..." />
    <meta property="og:image" content="https://avatars1.githubusercontent.com/u/37247796?s=400&amp;v=4" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="[RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack by ericonr · Pull Request #23432 · void-linux/void-packages" /><meta property="og:url" content="https://github.com/void-linux/void-packages/pull/23432" /><meta property="og:description" content="Okay, so this is a biggie PR, and I do need help for making some decisions.

So, basically, gcompat can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn&amp;#39;t working..." />

  <link rel="assets" href="https://github.githubassets.com/">
  

  <meta name="request-id" content="D3B8:F330:B2A329A:103BDDFA:5F03B8C3" data-pjax-transient="true"/><meta name="html-safe-nonce" content="8dfe376b33240295c0e6516c9d797d31d2b7fda4" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEM0I4OkYzMzA6QjJBMzI5QToxMDNCRERGQTo1RjAzQjhDMyIsInZpc2l0b3JfaWQiOiI3NTE0Mzc3NTM2MDI2MTYzMzk1IiwicmVnaW9uX2VkZ2UiOiJhbXMiLCJyZWdpb25fcmVuZGVyIjoiYW1zIn0=" data-pjax-transient="true"/><meta name="visitor-hmac" content="7f94265785c4ebe4520cc366fc60f72006895bd810d0ae9596977bef625bf635" data-pjax-transient="true"/>

    <meta name="hovercard-subject-tag" content="pull_request:445057726" data-pjax-transient>


  <meta name="github-keyboard-shortcuts" content="repository,pull-request-list,pull-request-conversation,pull-request-files-changed" data-pjax-transient="true" />

  

  <meta name="selected-link" value="repo_pulls" data-pjax-transient>

    <meta name="google-site-verification" content="c1kuD-K2HIVF635lypcsWPoD4kilo5-jA_wBFyT4uMY">
  <meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU">
  <meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA">
  <meta name="google-site-verification" content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc">

  <meta name="octolytics-host" content="collector.githubapp.com" /><meta name="octolytics-app-id" content="github" /><meta name="octolytics-event-url" content="https://collector.githubapp.com/github-external/browser_event" /><meta name="octolytics-dimension-ga_id" content="" class="js-octo-ga-id" />

  <meta name="analytics-location" content="/&lt;user-name&gt;/&lt;repo-name&gt;/pull_requests/show" data-pjax-transient="true" />

  




    <meta name="google-analytics" content="UA-3769691-2">


<meta class="js-ga-set" name="dimension10" content="Not Responsive" data-pjax-transient>

<meta class="js-ga-set" name="dimension1" content="Logged Out">



  

      <meta name="hostname" content="github.com">
    <meta name="user-login" content="">


      <meta name="expected-hostname" content="github.com">


    <meta name="enabled-features" content="MARKETPLACE_PENDING_INSTALLATIONS,PRIMER_NEXT,ACTIONS_MANUAL_RUN">

  <meta http-equiv="x-pjax-version" content="1fdfe22666ee4e770ceeb004482a57ea">
  

      <link href="https://github.com/void-linux/void-packages/commits/gcompat.atom" rel="alternate" title="Recent Commits to void-packages:gcompat" type="application/atom+xml">

  <meta name="go-import" content="github.com/void-linux/void-packages git https://github.com/void-linux/void-packages.git">

  <meta name="octolytics-dimension-user_id" content="37247796" /><meta name="octolytics-dimension-user_login" content="void-linux" /><meta name="octolytics-dimension-repository_id" content="137503442" /><meta name="octolytics-dimension-repository_nwo" content="void-linux/void-packages" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="false" /><meta name="octolytics-dimension-repository_network_root_id" content="137503442" /><meta name="octolytics-dimension-repository_network_root_nwo" content="void-linux/void-packages" /><meta name="octolytics-dimension-repository_explore_github_marketplace_ci_cta_shown" content="false" />




  <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">

  <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">

  <link rel="mask-icon" href="https://github.githubassets.com/pinned-octocat.svg" color="#000000">
  <link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png">
  <link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://github.githubassets.com/favicons/favicon.svg">

<meta name="theme-color" content="#1e2327">


  <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">

  </head>

  <body class="logged-out env-production min-width-lg">
    

    <div class="position-relative js-header-wrapper ">
      <a href="#start-of-content" class="px-2 py-4 bg-blue text-white show-on-focus js-skip-to-content">Skip to content</a>
      <span class="Progress progress-pjax-loader position-fixed width-full js-pjax-loader-bar">
        <span class="progress-pjax-loader-bar top-0 left-0" style="width: 0%;"></span>
      </span>

      
      



          <header class="Header-old header-logged-out  position-relative f4 py-2" role="banner">
  <div class="container-xl d-flex px-3">
    <div class="d-flex flex-justify-between flex-items-center">
        <a class="mr-4" href="https://github.com/" aria-label="Homepage" data-ga-click="(Logged out) Header, go to homepage, icon:logo-wordmark">
          <svg height="32" class="octicon octicon-mark-github text-white" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path></svg>
        </a>
    </div>

    <div class="HeaderMenu HeaderMenu--logged-out d-flex flex-justify-between flex-items-center flex-auto">
      <div class="d-none">
        <button class="btn-link js-details-target" type="button" aria-label="Toggle navigation" aria-expanded="false">
          <svg height="24" class="octicon octicon-x text-gray" viewBox="0 0 24 24" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M5.72 5.72a.75.75 0 011.06 0L12 10.94l5.22-5.22a.75.75 0 111.06 1.06L13.06 12l5.22 5.22a.75.75 0 11-1.06 1.06L12 13.06l-5.22 5.22a.75.75 0 01-1.06-1.06L10.94 12 5.72 6.78a.75.75 0 010-1.06z"></path></svg>
        </button>
      </div>

        <nav class="mt-0" aria-label="Global">
          <ul class="d-flex list-style-none">
              <li class=" mr-3 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center ">
                <details class="HeaderMenu-details details-overlay details-reset width-full">
                  <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap  d-inline-block">
                    Why GitHub?
                    <svg x="0px" y="0px" viewBox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-relative">
                      <path d="M1,1l6.2,6L13,1"></path>
                    </svg>
                  </summary>
                  <div class="dropdown-menu flex-auto rounded-1 bg-white px-0 mt-0  p-4 left-n4 position-absolute">
                    <a href="/features" class="py-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Features">Features <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a>
                    <ul class="list-style-none f5 pb-3">
                      <li class="edge-item-fix"><a href="/features/code-review/" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Code review">Code review</a></li>
                      <li class="edge-item-fix"><a href="/features/project-management/" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Project management">Project management</a></li>
                      <li class="edge-item-fix"><a href="/features/integrations" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Integrations">Integrations</a></li>
                      <li class="edge-item-fix"><a href="/features/actions" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Actions">Actions</a></li>
                      <li class="edge-item-fix"><a href="/features/packages" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to GitHub Packages">Packages</a></li>
                      <li class="edge-item-fix"><a href="/features/security" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Security">Security</a></li>
                      <li class="edge-item-fix"><a href="/features#team-management" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Team management">Team management</a></li>
                      <li class="edge-item-fix"><a href="/features#hosting" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Code hosting">Hosting</a></li>
                    </ul>

                    <ul class="list-style-none mb-0 border-lg-top pt-lg-3">
                      <li class="edge-item-fix"><a href="/customer-stories" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Customer stories">Customer stories <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a></li>
                      <li class="edge-item-fix"><a href="/security" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Security">Security <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a></li>
                    </ul>
                  </div>
                </details>
              </li>
              <li class=" mr-3 mr-lg-3">
                <a href="/team" class="HeaderMenu-link no-underline py-3 d-block d-lg-inline-block" data-ga-click="(Logged out) Header, go to Team">Team</a>
              </li>
              <li class=" mr-3 mr-lg-3">
                <a href="/enterprise" class="HeaderMenu-link no-underline py-3 d-block d-lg-inline-block" data-ga-click="(Logged out) Header, go to Enterprise">Enterprise</a>
              </li>

              <li class=" mr-3 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center ">
                <details class="HeaderMenu-details details-overlay details-reset width-full">
                  <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap  d-inline-block">
                    Explore
                    <svg x="0px" y="0px" viewBox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-relative">
                      <path d="M1,1l6.2,6L13,1"></path>
                    </svg>
                  </summary>

                  <div class="dropdown-menu flex-auto rounded-1 bg-white px-0 pt-2 pb-0 mt-0  p-4 left-n4 position-absolute">
                    <ul class="list-style-none mb-3">
                      <li class="edge-item-fix"><a href="/explore" class="py-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Explore">Explore GitHub <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a></li>
                    </ul>

                    <h4 class="text-gray-light text-normal text-mono f5 mb-2  border-top pt-3">Learn &amp; contribute</h4>
                    <ul class="list-style-none mb-3">
                      <li class="edge-item-fix"><a href="/topics" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Topics">Topics</a></li>
                        <li class="edge-item-fix"><a href="/collections" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Collections">Collections</a></li>
                      <li class="edge-item-fix"><a href="/trending" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Trending">Trending</a></li>
                      <li class="edge-item-fix"><a href="https://lab.github.com/" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Learning lab">Learning Lab</a></li>
                      <li class="edge-item-fix"><a href="https://opensource.guide" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Open source guides">Open source guides</a></li>
                    </ul>

                    <h4 class="text-gray-light text-normal text-mono f5 mb-2  border-top pt-3">Connect with others</h4>
                    <ul class="list-style-none mb-0">
                      <li class="edge-item-fix"><a href="https://github.com/events" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Events">Events</a></li>
                      <li class="edge-item-fix"><a href="https://github.community" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Community forum">Community forum</a></li>
                      <li class="edge-item-fix"><a href="https://education.github.com" class="py-2 pb-0 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to GitHub Education">GitHub Education</a></li>
                    </ul>
                  </div>
                </details>
              </li>

              <li class=" mr-3 mr-lg-3">
                <a href="/marketplace" class="HeaderMenu-link no-underline py-3 d-block d-lg-inline-block" data-ga-click="(Logged out) Header, go to Marketplace">Marketplace</a>
              </li>

              <li class=" mr-3 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center ">
                <details class="HeaderMenu-details details-overlay details-reset width-full">
                  <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap  d-inline-block">
                    Pricing
                    <svg x="0px" y="0px" viewBox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-relative">
                       <path d="M1,1l6.2,6L13,1"></path>
                    </svg>
                  </summary>

                  <div class="dropdown-menu flex-auto rounded-1 bg-white px-0 pt-2 pb-4 mt-0  p-4 left-n4 position-absolute">
                    <a href="/pricing" class="pb-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Pricing">Plans <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a>

                    <ul class="list-style-none mb-3">
                      <li class="edge-item-fix"><a href="/pricing#feature-comparison" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Compare plans">Compare plans</a></li>
                      <li class="edge-item-fix"><a href="https://enterprise.github.com/contact" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Contact Sales">Contact Sales</a></li>
                    </ul>

                    <ul class="list-style-none mb-0  border-top pt-3">
                      <li class="edge-item-fix"><a href="/nonprofit" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Nonprofits">Nonprofit <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a></li>
                      <li class="edge-item-fix"><a href="https://education.github.com" class="py-2 pb-0 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover"  data-ga-click="(Logged out) Header, go to Education">Education <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a></li>
                    </ul>
                  </div>
                </details>
              </li>
          </ul>
        </nav>

      <div class="d-flex flex-items-center px-0 text-center text-left">
          <div class="d-lg-flex ">
            <div class="header-search header-search-current js-header-search-current  mr-3 scoped-search site-scoped-search js-site-search position-relative js-jump-to js-header-search-current-jump-to"
  role="combobox"
  aria-owns="jump-to-results"
  aria-label="Search or jump to"
  aria-haspopup="listbox"
  aria-expanded="false"
>
  <div class="position-relative">
    <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-site-search-form" role="search" aria-label="Site" data-scope-type="Repository" data-scope-id="137503442" data-scoped-search-url="/void-linux/void-packages/search" data-unscoped-search-url="/search" action="/void-linux/void-packages/search" accept-charset="UTF-8" method="get">
      <label class="form-control input-sm header-search-wrapper p-0 header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center js-chromeless-input-container">
        <input type="text"
          class="form-control input-sm header-search-input jump-to-field js-jump-to-field js-site-search-focus js-site-search-field is-clearable"
          data-hotkey="s,/"
          name="q"
          value=""
          placeholder="Search"
          data-unscoped-placeholder="Search GitHub"
          data-scoped-placeholder="Search"
          autocapitalize="off"
          aria-autocomplete="list"
          aria-controls="jump-to-results"
          aria-label="Search"
          data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations"
          spellcheck="false"
          autocomplete="off"
          >
          <input type="hidden" data-csrf="true" class="js-data-jump-to-suggestions-path-csrf" value="7tjUNO9MlCWMZ6sld370ngrkXB6xfpk4aJfmwcOApdWP3zkBZ5thohHnX0VFZz/NUPlOBHn579p/UZZzSJ0Gog==" />
          <input type="hidden" class="js-site-search-type-field" name="type" >
            <img src="https://github.githubassets.com/images/search-key-slash.svg" alt="" class="mr-2 header-search-key-slash">

            <div class="Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container">
              
<ul class="d-none js-jump-to-suggestions-template-container">
  

<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-suggestion" role="option">
  <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
    <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
      <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg>
      <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path></svg>
      <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg>
    </div>

    <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">

    <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
    </div>

    <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
      <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
        In this repository
      </span>
      <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
        All GitHub
      </span>
      <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>

    <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
      Jump to
      <span class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>
  </a>
</li>

</ul>

<ul class="d-none js-jump-to-no-results-template-container">
  <li class="d-flex flex-justify-center flex-items-center f5 d-none js-jump-to-suggestion p-2">
    <span class="text-gray">No suggested jump to results</span>
  </li>
</ul>

<ul id="jump-to-results" role="listbox" class="p-0 m-0 js-navigation-container jump-to-suggestions-results-container js-jump-to-suggestions-results-container">
  

<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-scoped-search d-none" role="option">
  <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
    <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
      <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg>
      <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path></svg>
      <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg>
    </div>

    <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">

    <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
    </div>

    <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
      <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
        In this repository
      </span>
      <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
        All GitHub
      </span>
      <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>

    <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
      Jump to
      <span class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>
  </a>
</li>

  

<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-global-search d-none" role="option">
  <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
    <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
      <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg>
      <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path></svg>
      <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg>
    </div>

    <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">

    <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
    </div>

    <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
      <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
        In this repository
      </span>
      <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
        All GitHub
      </span>
      <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>

    <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
      Jump to
      <span class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>
  </a>
</li>


</ul>

            </div>
      </label>
</form>  </div>
</div>

          </div>

        <a href="/login?return_to=%2Fvoid-linux%2Fvoid-packages%2Fpull%2F23432"
          class="HeaderMenu-link no-underline mr-3"
          data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/void-linux/void-packages/pull/23432&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="9c61416e884cf7af975a4d6652cfe39fe15cbb191a4c74bf2364a2303fcf8694"
          data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in">
          Sign&nbsp;in
        </a>
            <a href="/join?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow&amp;source_repo=void-linux%2Fvoid-packages"
              class="HeaderMenu-link d-inline-block no-underline border border-gray-dark rounded-1 px-2 py-1"
              data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/void-linux/void-packages/pull/23432&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="9c61416e884cf7af975a4d6652cfe39fe15cbb191a4c74bf2364a2303fcf8694"
              data-ga-click="Sign up, click to sign up for account, ref_page:/&lt;user-name&gt;/&lt;repo-name&gt;/pull_requests/show;ref_cta:Sign up;ref_loc:header logged out">
              Sign&nbsp;up
            </a>
      </div>
    </div>
  </div>
</header>

    </div>

  <div id="start-of-content" class="show-on-focus"></div>




    <div id="js-flash-container">


  <template class="js-flash-template">
    <div class="flash flash-full  js-flash-template-container">
  <div class=" px-2" >
    <button class="flash-close js-flash-close" type="button" aria-label="Dismiss this message">
      <svg class="octicon octicon-x" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg>
    </button>
    
      <div class="js-flash-template-message"></div>

  </div>
</div>
  </template>
</div>


  

  <include-fragment class="js-notification-shelf-include-fragment" data-base-src="https://github.com/notifications/beta/shelf"></include-fragment>



  <div
    class="application-main "
    data-commit-hovercards-enabled
    data-discussion-hovercards-enabled
    data-issue-and-pr-hovercards-enabled
  >
        <div itemscope itemtype="http://schema.org/SoftwareSourceCode" class="">
    <main id="js-repo-pjax-container" data-pjax-container >
      
<!-- base sha1: &quot;d2a5caf8d2b539a1db4cdecfa6ae4375c6935d3d&quot; -->
<!-- head sha1: &quot;7133b6a6435bbaaf63654b121c80fbfe739db656&quot; -->

  


  










  <div class="pagehead repohead readability-menu bg-gray-light pb-0 pt-3 border-0 mb-5">

    <div class="d-flex mb-3 px-5">

      <div class="flex-auto min-width-0 width-fit mr-3">
        <h1 class="public  d-flex flex-wrap flex-items-center break-word float-none f3">
    <svg class="octicon octicon-repo" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg>
  <span class="author ml-2 flex-self-stretch" itemprop="author">
    <a class="url fn" rel="author" data-hovercard-type="organization" data-hovercard-url="/orgs/void-linux/hovercard" href="/void-linux">void-linux</a>
  </span>
  <span class="path-divider flex-self-stretch">/</span>
  <strong itemprop="name" class="mr-2 flex-self-stretch">
    <a data-pjax="#js-repo-pjax-container" href="/void-linux/void-packages">void-packages</a>
  </strong>
  
</h1>


      </div>

      <ul class="pagehead-actions flex-shrink-0 " style="padding: 2px 0;">

  <li>
      <a class="tooltipped tooltipped-s btn btn-sm btn-with-count" aria-label="You must be signed in to watch a repository" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;notification subscription menu watch&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/void-linux/void-packages/pull/23432&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5d16a0f1d0c6c773868cf5ad0caa2903ad3c6bcae0f59a67b50f01138b01e96e" href="/login?return_to=%2Fvoid-linux%2Fvoid-packages">
    <svg height="16" class="octicon octicon-eye" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.679 7.932c.412-.621 1.242-1.75 2.366-2.717C5.175 4.242 6.527 3.5 8 3.5c1.473 0 2.824.742 3.955 1.715 1.124.967 1.954 2.096 2.366 2.717a.119.119 0 010 .136c-.412.621-1.242 1.75-2.366 2.717C10.825 11.758 9.473 12.5 8 12.5c-1.473 0-2.824-.742-3.955-1.715C2.92 9.818 2.09 8.69 1.679 8.068a.119.119 0 010-.136zM8 2c-1.981 0-3.67.992-4.933 2.078C1.797 5.169.88 6.423.43 7.1a1.619 1.619 0 000 1.798c.45.678 1.367 1.932 2.637 3.024C4.329 13.008 6.019 14 8 14c1.981 0 3.67-.992 4.933-2.078 1.27-1.091 2.187-2.345 2.637-3.023a1.619 1.619 0 000-1.798c-.45-.678-1.367-1.932-2.637-3.023C11.671 2.992 9.981 2 8 2zm0 8a2 2 0 100-4 2 2 0 000 4z"></path></svg>

    Watch
</a>    <a class="social-count" href="/void-linux/void-packages/watchers"
       aria-label="40 users are watching this repository">
      40
    </a>

  </li>

  <li>
        <a class="btn btn-sm btn-with-count  tooltipped tooltipped-s" aria-label="You must be signed in to star a repository" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:137503442,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/void-linux/void-packages/pull/23432&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="66f570d9e903753eb74f3676d884623a18302ebc45de3306629d4e2b6feae592" href="/login?return_to=%2Fvoid-linux%2Fvoid-packages">
      <svg height="16" class="octicon octicon-star v-align-text-bottom" vertical_align="text_bottom" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 2.769-1.456a.75.75 0 01.698 0l2.77 1.456-.53-3.084a.75.75 0 01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 2.694v.001z"></path></svg>

      Star
</a>
    <a class="social-count js-social-count" href="/void-linux/void-packages/stargazers"
      aria-label="1024 users starred this repository">
      1k
    </a>

  </li>

  <li>
      <a class="btn btn-sm btn-with-count tooltipped tooltipped-s" aria-label="You must be signed in to fork a repository" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;repo details fork button&quot;,&quot;repository_id&quot;:137503442,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/void-linux/void-packages/pull/23432&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="118a205e9278c70e6483f76ffbe650dcb911afb36b18756b629b528d5eed0c27" href="/login?return_to=%2Fvoid-linux%2Fvoid-packages">
        <svg class="octicon octicon-repo-forked" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5 3.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm0 2.122a2.25 2.25 0 10-1.5 0v.878A2.25 2.25 0 005.75 8.5h1.5v2.128a2.251 2.251 0 101.5 0V8.5h1.5a2.25 2.25 0 002.25-2.25v-.878a2.25 2.25 0 10-1.5 0v.878a.75.75 0 01-.75.75h-4.5A.75.75 0 015 6.25v-.878zm3.75 7.378a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm3-8.75a.75.75 0 100-1.5.75.75 0 000 1.5z"></path></svg>
        Fork
</a>
    <a href="/void-linux/void-packages/network/members" class="social-count"
       aria-label="973 users forked this repository">
      973
    </a>
  </li>
</ul>

    </div>
    
<nav class="js-repo-nav js-sidenav-container-pjax js-responsive-underlinenav overflow-hidden UnderlineNav px-3 px-md-4 px-lg-5 bg-gray-light" aria-label="Repository" data-pjax="#js-repo-pjax-container">
  <ul class="UnderlineNav-body list-style-none ">
          <li class="d-flex">
        <a class="js-selected-navigation-item UnderlineNav-item hx_underlinenav-item no-wrap js-responsive-underlinenav-item" data-tab-item="code-tab" data-hotkey="g c" data-ga-click="Repository, Navigation click, Code tab" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages repo_deployments /void-linux/void-packages" href="/void-linux/void-packages">
              <svg height="16" class="octicon octicon-code UnderlineNav-octicon d-none d-sm-inline" classes="UnderlineNav-octicon" display="none inline" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M4.72 3.22a.75.75 0 011.06 1.06L2.06 8l3.72 3.72a.75.75 0 11-1.06 1.06L.47 8.53a.75.75 0 010-1.06l4.25-4.25zm6.56 0a.75.75 0 10-1.06 1.06L13.94 8l-3.72 3.72a.75.75 0 101.06 1.06l4.25-4.25a.75.75 0 000-1.06l-4.25-4.25z"></path></svg>

            <span data-content="Code">Code</span>
              
</a>      </li>
      <li class="d-flex">
        <a class="js-selected-navigation-item UnderlineNav-item hx_underlinenav-item no-wrap js-responsive-underlinenav-item" data-tab-item="issues-tab" data-hotkey="g i" data-ga-click="Repository, Navigation click, Issues tab" data-selected-links="repo_issues repo_labels repo_milestones /void-linux/void-packages/issues" href="/void-linux/void-packages/issues">
              <svg height="16" class="octicon octicon-issue-opened UnderlineNav-octicon d-none d-sm-inline" classes="UnderlineNav-octicon" display="none inline" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 0zm-.25-6.25a.75.75 0 00-1.5 0v3.5a.75.75 0 001.5 0v-3.5z"></path></svg>

            <span data-content="Issues">Issues</span>
              <span class="Counter ">476</span>


</a>      </li>
      <li class="d-flex">
        <a class="js-selected-navigation-item selected UnderlineNav-item hx_underlinenav-item no-wrap js-responsive-underlinenav-item" data-tab-item="pull-requests-tab" data-hotkey="g p" data-ga-click="Repository, Navigation click, Pull requests tab" aria-current="page" data-selected-links="repo_pulls checks /void-linux/void-packages/pulls" href="/void-linux/void-packages/pulls">
              <svg height="16" class="octicon octicon-git-pull-request UnderlineNav-octicon d-none d-sm-inline" classes="UnderlineNav-octicon" display="none inline" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.177 3.073L9.573.677A.25.25 0 0110 .854v4.792a.25.25 0 01-.427.177L7.177 3.427a.25.25 0 010-.354zM3.75 2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.25.75a2.25 2.25 0 113 2.122v5.256a2.251 2.251 0 11-1.5 0V5.372A2.25 2.25 0 011.5 3.25zM11 2.5h-1V4h1a1 1 0 011 1v5.628a2.251 2.251 0 101.5 0V5A2.5 2.5 0 0011 2.5zm1 10.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM3.75 12a.75.75 0 100 1.5.75.75 0 000-1.5z"></path></svg>

            <span data-content="Pull requests">Pull requests</span>
              <span class="Counter ">458</span>


</a>      </li>
      <li class="d-flex">
        <a class="js-selected-navigation-item UnderlineNav-item hx_underlinenav-item no-wrap js-responsive-underlinenav-item" data-tab-item="actions-tab" data-hotkey="g w" data-ga-click="Repository, Navigation click, Actions tab" data-selected-links="repo_actions /void-linux/void-packages/actions" href="/void-linux/void-packages/actions">
              <svg height="16" class="octicon octicon-play UnderlineNav-octicon d-none d-sm-inline" classes="UnderlineNav-octicon" display="none inline" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM6.379 5.227A.25.25 0 006 5.442v5.117a.25.25 0 00.379.214l4.264-2.559a.25.25 0 000-.428L6.379 5.227z"></path></svg>

            <span data-content="Actions">Actions</span>
              
</a>      </li>
      <li class="d-flex">
        <a class="js-selected-navigation-item UnderlineNav-item hx_underlinenav-item no-wrap js-responsive-underlinenav-item" data-tab-item="security-tab" data-hotkey="g s" data-ga-click="Repository, Navigation click, Security tab" data-selected-links="security overview alerts policy token_scanning code_scanning /void-linux/void-packages/security" href="/void-linux/void-packages/security">
              <svg height="16" class="octicon octicon-shield UnderlineNav-octicon d-none d-sm-inline" classes="UnderlineNav-octicon" display="none inline" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.467.133a1.75 1.75 0 011.066 0l5.25 1.68A1.75 1.75 0 0115 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.7 1.7 0 01-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 011.217-1.667l5.25-1.68zm.61 1.429a.25.25 0 00-.153 0l-5.25 1.68a.25.25 0 00-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.2.2 0 00.154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.25.25 0 00-.174-.237l-5.25-1.68zM9 10.5a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.75a.75.75 0 10-1.5 0v3a.75.75 0 001.5 0v-3z"></path></svg>

            <span data-content="Security">Security</span>
              <span class="js-security-tab-count Counter " data-url="/void-linux/void-packages/security/overall-count" hidden="hidden">1</span>


</a>      </li>
      <li class="d-flex">
        <a class="js-selected-navigation-item UnderlineNav-item hx_underlinenav-item no-wrap js-responsive-underlinenav-item" data-tab-item="insights-tab" data-ga-click="Repository, Navigation click, Insights tab" data-selected-links="repo_graphs repo_contributors dependency_graph dependabot_updates pulse people /void-linux/void-packages/pulse" href="/void-linux/void-packages/pulse">
              <svg height="16" class="octicon octicon-graph UnderlineNav-octicon d-none d-sm-inline" classes="UnderlineNav-octicon" display="none inline" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 1.75a.75.75 0 00-1.5 0v12.5c0 .414.336.75.75.75h14.5a.75.75 0 000-1.5H1.5V1.75zm14.28 2.53a.75.75 0 00-1.06-1.06L10 7.94 7.53 5.47a.75.75 0 00-1.06 0L3.22 8.72a.75.75 0 001.06 1.06L7 7.06l2.47 2.47a.75.75 0 001.06 0l5.25-5.25z"></path></svg>

            <span data-content="Insights">Insights</span>
              
</a>      </li>

</ul>
        <div class="position-absolute right-0 pr-3 pr-md-4 pr-lg-5 js-responsive-underlinenav-overflow" style="visibility:hidden;">
      <details class="details-overlay details-reset position-relative">
  <summary role="button">
              <div class="UnderlineNav-item mr-0 border-0">
            <svg class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path></svg>
            <span class="sr-only">More</span>
          </div>

</summary>
            <details-menu class="dropdown-menu dropdown-menu-sw " role="menu">
  
            <ul>
                <li data-menu-item="code-tab" hidden>
                  <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /void-linux/void-packages" href="/void-linux/void-packages">
                    Code
</a>                </li>
                <li data-menu-item="issues-tab" hidden>
                  <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /void-linux/void-packages/issues" href="/void-linux/void-packages/issues">
                    Issues
</a>                </li>
                <li data-menu-item="pull-requests-tab" hidden>
                  <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /void-linux/void-packages/pulls" href="/void-linux/void-packages/pulls">
                    Pull requests
</a>                </li>
                <li data-menu-item="actions-tab" hidden>
                  <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /void-linux/void-packages/actions" href="/void-linux/void-packages/actions">
                    Actions
</a>                </li>
                <li data-menu-item="security-tab" hidden>
                  <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /void-linux/void-packages/security" href="/void-linux/void-packages/security">
                    Security
</a>                </li>
                <li data-menu-item="insights-tab" hidden>
                  <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /void-linux/void-packages/pulse" href="/void-linux/void-packages/pulse">
                    Insights
</a>                </li>
            </ul>

</details-menu>

</details>
    </div>

</nav>

  </div>

<div class="container-xl clearfix new-discussion-timeline  px-3 px-md-4 px-lg-5">
  <div class="repository-content ">

    
    
  <div class="js-check-all-container" data-pjax>
    
    <signup-prompt class="signup-prompt-bg rounded-1" data-prompt="signup" hidden>
    <div class="signup-prompt p-4 text-center mb-4 rounded-1">
      <div class="position-relative">
        <button
          type="button"
          class="position-absolute top-0 right-0 btn-link link-gray"
          data-action="click:signup-prompt#dismiss"
          data-ga-click="(Logged out) Sign up prompt, clicked Dismiss, text:dismiss"
        >
          Dismiss
        </button>
        <h3 class="pt-2">Join GitHub today</h3>
        <p class="col-6 mx-auto">GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.</p>
        <a class="btn btn-primary" data-ga-click="(Logged out) Sign up prompt, clicked Sign up, text:sign-up" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;files signup prompt&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/void-linux/void-packages/pull/23432&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b400da5b94f083809b2c48cb618fc0173dec31ae88dc7bde95bfafe55e3fbd8e" href="/join?source=prompt-pr-show&amp;source_repo=void-linux%2Fvoid-packages">Sign up</a>
      </div>
    </div>
  </signup-prompt>



  <div id="js-report-pull-request-refresh" data-hydro-view="{&quot;event_type&quot;:&quot;pull-request-refresh&quot;,&quot;payload&quot;:{&quot;pull_request_id&quot;:445057726,&quot;tab_context&quot;:&quot;conversation&quot;,&quot;originating_url&quot;:&quot;https://github.com/void-linux/void-packages/pull/23432&quot;,&quot;user_id&quot;:null}}" data-hydro-view-hmac="fbf0ebf37422e5852d0fcac29cf3ffbf8a761b63cda75547dd3673a2d45dd703"></div>


  <div class="clearfix js-issues-results">
    
  <div
    id="partial-discussion-header"
    class="gh-header js-details-container Details js-socket-channel js-updatable-content pull request js-pull-header-details"
    data-channel="eyJjIjoicHVsbF9yZXF1ZXN0OjQ0NTA1NzcyNiIsInQiOjE1OTQwNzk0Mjd9--fe3b2b35cb3e020a34671f91a1fdacee4dc5d82ea83d91fe539bfcee768121bc"
    data-url="/void-linux/void-packages/pull/23432/show_partial?partial=pull_requests%2Ftitle&amp;sticky=true"
    data-pull-is-open="true"
    data-gid="MDExOlB1bGxSZXF1ZXN0NDQ1MDU3NzI2">
  <div class="gh-header-show ">
    
      <div class="gh-header-actions ">


          
<details class="details-reset details-overlay details-overlay-dark float-right" >
  <summary
    class="btn btn-sm btn-primary "
    
    
    data-ga-click="Issues, create new issue, view:issue_show location:issue_header style:button logged_in:false"
>
    
    New issue
  </summary>
  <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast overflow-auto" aria-label="Sign up for GitHub">
      <button class="position-absolute p-4 right-0 btn-link muted-link" type="button" aria-label="Close dialog" data-close-dialog>
        <svg class="octicon octicon-x" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg>
      </button>
    <div class="d-flex flex-column p-4">
            <div class="mt-3 mb-2 text-center">
  <svg height="60" class="octicon octicon-comment-discussion text-blue" viewBox="0 0 24 24" version="1.1" width="60" aria-hidden="true"><path fill-rule="evenodd" d="M1.75 1A1.75 1.75 0 000 2.75v9.5C0 13.216.784 14 1.75 14H3v1.543a1.457 1.457 0 002.487 1.03L8.061 14h6.189A1.75 1.75 0 0016 12.25v-9.5A1.75 1.75 0 0014.25 1H1.75zM1.5 2.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v9.5a.25.25 0 01-.25.25h-6.5a.75.75 0 00-.53.22L4.5 15.44v-2.19a.75.75 0 00-.75-.75h-2a.25.25 0 01-.25-.25v-9.5z"></path><path d="M22.5 8.75a.25.25 0 00-.25-.25h-3.5a.75.75 0 010-1.5h3.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0122.25 20H21v1.543a1.457 1.457 0 01-2.487 1.03L15.939 20H10.75A1.75 1.75 0 019 18.25v-1.465a.75.75 0 011.5 0v1.465c0 .138.112.25.25.25h5.5a.75.75 0 01.53.22l2.72 2.72v-2.19a.75.75 0 01.75-.75h2a.25.25 0 00.25-.25v-9.5z"></path></svg>
</div>

<div class="px-4">
  <p class="text-center mb-4">
  <strong>Have a question about this project?</strong> Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
  </p>

  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-signup-form" autocomplete="off" action="/join?return_to=%2Fvoid-linux%2Fvoid-packages%2Fissues%2Fnew" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="xWZK5ZP315A3i2G9UlKPUlko1wjxxKIuQZgcJ+kd4G22p3rgl4i6AEZB8jUg+fkzL4NVObZqt9WPEDHVuUR/Vw==" />    <auto-check src="/signup_check/username">
      <dl class="form-group"><dt class="input-label"><label name="user[login]" autocapitalize="off" autofocus="autofocus" for="user_login_issues">Pick a username</label></dt><dd><input name="user[login]" autocapitalize="off" autofocus="autofocus" class="form-control" type="text" id="user_login_issues" /></dd></dl>
      <input type="hidden" data-csrf="true" value="jd8BeQtSZtFdlRWVetmKJnWKlY7g5/JFjYnp61P0a0FsQiXrT9l22jSxDc+pCWHXuyvH0O0+z+gwije8wz9+5Q==" />
    </auto-check>

    <auto-check src="/signup_check/email">
      <dl class="form-group"><dt class="input-label"><label name="user[email]" autocapitalize="off" for="user_email_issues">Email Address</label></dt><dd><input name="user[email]" autocapitalize="off" class="form-control" type="text" id="user_email_issues" /></dd></dl>
      <input type="hidden" data-csrf="true" value="2I28l/l0tmLiEOR7SogWpAdvRNMDCWWorqhhwLzxHzGNgsrS2qTav55C+8XOU1Syh2dhGFOyxvWCxwhlvTSfrg==" />
    </auto-check>

    <dl class="form-group"><dt class="input-label"><label name="user[password]" for="user_password_issues">Password</label></dt><dd><input name="user[password]" class="form-control" type="password" id="user_password_issues" /></dd></dl>

    <input type="hidden" name="source" class="js-signup-source" value="modal-issues">
    <input class="form-control" type="text" name="required_field_1199" hidden="hidden" />
<input class="form-control" type="hidden" name="timestamp" value="1594079427749" />
<input class="form-control" type="hidden" name="timestamp_secret" value="d415832610c50f16c837fcb9f3cac516adac354ec9b9f148b440556acf514335" />


    <button class="btn btn-primary mt-2 btn-block" type="submit" data-ga-click="(Logged out) New issue modal, clicked Sign up, text:sign-up">Sign up for GitHub</button>
</form>
  <p class="mt-4 text-gray text-center">By clicking &ldquo;Sign up for GitHub&rdquo;, you agree to our <a href="https://help.github.com/terms" target="_blank">terms of service</a> and
  <a href="https://help.github.com/privacy" target="_blank">privacy statement</a>. We’ll occasionally send you account related emails.</p>

  <p class="mt-4 text-gray text-center">
    Already on GitHub?
    <a data-ga-click="(Logged out) New issue modal, clicked Sign in, text:sign-in" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;new issue modal&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/void-linux/void-packages/pull/23432&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="8135ac7246ae29a944c3d191a0275abd2ce4ae8cb5b0f6f32cae817a3df06549" href="/login?return_to=%2Fvoid-linux%2Fvoid-packages%2Fissues%2Fnew">Sign in</a>
    to your account
  </p>
</div>

</div>
  </details-dialog>
</details>
      </div>

    <h1 class="gh-header-title">
      <span class="js-issue-title">
        [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
      </span>
      <span class="gh-header-number">#23432</span>
    </h1>
    
  </div>

  <div class="TableObject gh-header-meta">
    <div class="TableObject-item">
        <span class="State State--green " title="Status: Open">
  
  <svg height="16" class="octicon octicon-git-pull-request" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.177 3.073L9.573.677A.25.25 0 0110 .854v4.792a.25.25 0 01-.427.177L7.177 3.427a.25.25 0 010-.354zM3.75 2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.25.75a2.25 2.25 0 113 2.122v5.256a2.251 2.251 0 11-1.5 0V5.372A2.25 2.25 0 011.5 3.25zM11 2.5h-1V4h1a1 1 0 011 1v5.628a2.251 2.251 0 101.5 0V5A2.5 2.5 0 0011 2.5zm1 10.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM3.75 12a.75.75 0 100 1.5.75.75 0 000-1.5z"></path></svg> Open


</span>

    </div>
    <div class="TableObject-item TableObject-item--primary">
          <a class="author link-gray text-bold css-truncate css-truncate-target expandable" data-hovercard-type="user" data-hovercard-url="/users/ericonr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/ericonr">ericonr</a>

  wants to merge
  <span class="js-updating-pull-request-commits-count">9</span>
  commits into



  <span title="void-linux/void-packages:master" class="commit-ref css-truncate user-select-contain expandable base-ref"><a title="void-linux/void-packages:master" class="no-underline" href="/void-linux/void-packages"><span class="css-truncate-target">void-linux</span>:<span class="css-truncate-target">master</span></a></span><span></span>

  <div class="commit-ref-dropdown">
    <details class="details-reset details-overlay select-menu commitish-suggester">
      <summary class="btn btn-sm select-menu-button branch" title="Choose a base branch">
        <i>base:</i>
        <span class="css-truncate css-truncate-target" title="master">master</span>
      </summary>
      <details-menu
        class="select-menu-modal position-absolute js-pull-base-branch-menu"
        data-menu-input="pull-change-base-branch-field"
        style="z-index: 90;"
        src="/void-linux/void-packages/pull/23432/show_partial?partial=pull_requests%2Fdescription_branches_dropdown" preload>
        <include-fragment class="select-menu-loading-overlay anim-pulse" aria-label="Loading">
          <svg height="32" class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"></path></svg>
        </include-fragment>
      </details-menu>
    </details>
    <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="change-base-form" action="/void-linux/void-packages/pull/23432/change_base" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="taEObZW3lVv4MXaN/aCgJhGlYRdh7jjhzqKT1/mMCc1aJriI84KnsKrX/+ahkzijAt0Bp2N7tF6sxO3vudyJ9g==" />
      <input type="hidden" id="pull-change-base-branch-field" name="new_base_binary">
</form>  </div>

from

<span title="ericonr/void-packages:gcompat" class="commit-ref css-truncate user-select-contain expandable head-ref"><a title="ericonr/void-packages:gcompat" class="no-underline" href="/ericonr/void-packages/tree/gcompat"><span class="css-truncate-target">ericonr</span>:<span class="css-truncate-target">gcompat</span></a></span><span><clipboard-copy class="js-clipboard-copy zeroclipboard-link text-gray link-hover-blue" value="ericonr:gcompat" aria-label="Copy" data-copy-feedback="Copied!"><svg class="octicon octicon-clippy d-inline-block mx-1 js-clipboard-clippy-icon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg><svg class="octicon octicon-check js-clipboard-check-icon mx-1 d-inline-block d-none text-green" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg></clipboard-copy></span>



    </div>
  </div>


    <div class="js-sticky js-sticky-offset-scroll top-0 gh-header-sticky">
      <div class="sticky-content">
        <div class="d-flex flex-items-center flex-justify-between mt-2">
          <div class="d-flex flex-row flex-items-center min-width-0">
            <div class="mr-2 flex-shrink-0">
                <span class="State State--green " title="Status: Open">
  
  <svg height="16" class="octicon octicon-git-pull-request" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.177 3.073L9.573.677A.25.25 0 0110 .854v4.792a.25.25 0 01-.427.177L7.177 3.427a.25.25 0 010-.354zM3.75 2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.25.75a2.25 2.25 0 113 2.122v5.256a2.251 2.251 0 11-1.5 0V5.372A2.25 2.25 0 011.5 3.25zM11 2.5h-1V4h1a1 1 0 011 1v5.628a2.251 2.251 0 101.5 0V5A2.5 2.5 0 0011 2.5zm1 10.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM3.75 12a.75.75 0 100 1.5.75.75 0 000-1.5z"></path></svg> Open


</span>

            </div>
            <div class="min-width-0">
              <h1 class="d-flex text-bold f5">
  <a class="js-issue-title css-truncate css-truncate-target link-gray-dark width-fit" href="#">[RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack</a>
  <span class="gh-header-number text-gray-light pl-1">#23432</span>
</h1>

              <div class="meta text-gray-light css-truncate css-truncate-target d-block width-fit">
                    <a class="author link-gray text-bold css-truncate css-truncate-target expandable" data-hovercard-z-index-override="111" data-hovercard-type="user" data-hovercard-url="/users/ericonr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/ericonr">ericonr</a>

  wants to merge
  <span class="js-updating-pull-request-commits-count">9</span>
  commits into



  <span title="void-linux/void-packages:master" class="commit-ref css-truncate user-select-contain expandable "><a title="void-linux/void-packages:master" class="no-underline" href="/void-linux/void-packages"><span class="css-truncate-target">void-linux</span>:<span class="css-truncate-target">master</span></a></span><span></span>

from

<span title="ericonr/void-packages:gcompat" class="commit-ref css-truncate user-select-contain expandable head-ref"><a title="ericonr/void-packages:gcompat" class="no-underline" href="/ericonr/void-packages/tree/gcompat"><span class="css-truncate-target">ericonr</span>:<span class="css-truncate-target">gcompat</span></a></span><span><clipboard-copy class="js-clipboard-copy zeroclipboard-link text-gray link-hover-blue" value="ericonr:gcompat" aria-label="Copy" data-copy-feedback="Copied!"><svg class="octicon octicon-clippy d-inline-block mx-1 js-clipboard-clippy-icon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg><svg class="octicon octicon-check js-clipboard-check-icon mx-1 d-inline-block d-none text-green" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg></clipboard-copy></span>



              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="gh-header-shadow box-shadow js-notification-shelf-offset-top"></div>
</div>


      
<div class="tabnav tabnav-pr">
    <div class="tabnav-extra float-right">
      <span class="diffstat" id="diffstat">
        <span class="text-green">
          +32
        </span>
        <span class="text-red">
          −81
        </span>
        <span class="tooltipped tooltipped-s" aria-label="113 lines changed">
          <span class="diffstat-block-added"></span><span class="diffstat-block-deleted"></span><span class="diffstat-block-deleted"></span><span class="diffstat-block-deleted"></span><span class="diffstat-block-neutral"></span>
        </span>
      </span>
    </div>

  <nav class="tabnav-tabs">

    <a href="/void-linux/void-packages/pull/23432" class="tabnav-tab selected js-pjax-history-navigate">
      <svg class="octicon octicon-comment-discussion" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 2.75a.25.25 0 01.25-.25h8.5a.25.25 0 01.25.25v5.5a.25.25 0 01-.25.25h-3.5a.75.75 0 00-.53.22L3.5 11.44V9.25a.75.75 0 00-.75-.75h-1a.25.25 0 01-.25-.25v-5.5zM1.75 1A1.75 1.75 0 000 2.75v5.5C0 9.216.784 10 1.75 10H2v1.543a1.457 1.457 0 002.487 1.03L7.061 10h3.189A1.75 1.75 0 0012 8.25v-5.5A1.75 1.75 0 0010.25 1h-8.5zM14.5 4.75a.25.25 0 00-.25-.25h-.5a.75.75 0 110-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0114.25 12H14v1.543a1.457 1.457 0 01-2.487 1.03L9.22 12.28a.75.75 0 111.06-1.06l2.22 2.22v-2.19a.75.75 0 01.75-.75h1a.25.25 0 00.25-.25v-5.5z"></path></svg>
      Conversation

      <span id="conversation_tab_counter" class="Counter">
        0
      </span>
    </a>

    <a href="/void-linux/void-packages/pull/23432/commits" class="tabnav-tab  js-pjax-history-navigate">
      <svg class="octicon octicon-git-commit" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.5 7.75a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm1.43.75a4.002 4.002 0 01-7.86 0H.75a.75.75 0 110-1.5h3.32a4.001 4.001 0 017.86 0h3.32a.75.75 0 110 1.5h-3.32z"></path></svg>
      Commits

      <span id="commits_tab_counter" class="Counter js-updateable-pull-request-commits-count">
        9
      </span>
    </a>

      <a href="/void-linux/void-packages/pull/23432/checks" class="tabnav-tab " data-skip-pjax>
        <svg class="octicon octicon-checklist" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.5 1.75a.25.25 0 01.25-.25h8.5a.25.25 0 01.25.25v7.736a.75.75 0 101.5 0V1.75A1.75 1.75 0 0011.25 0h-8.5A1.75 1.75 0 001 1.75v11.5c0 .966.784 1.75 1.75 1.75h3.17a.75.75 0 000-1.5H2.75a.25.25 0 01-.25-.25V1.75zM4.75 4a.75.75 0 000 1.5h4.5a.75.75 0 000-1.5h-4.5zM4 7.75A.75.75 0 014.75 7h2a.75.75 0 010 1.5h-2A.75.75 0 014 7.75zm11.774 3.537a.75.75 0 00-1.048-1.074L10.7 14.145 9.281 12.72a.75.75 0 00-1.062 1.058l1.943 1.95a.75.75 0 001.055.008l4.557-4.45z"></path></svg>
        Checks

        <span id="checks_tab_counter" class="Counter">
          0
        </span>
      </a>

      <link rel="pjax-prefetch" href="/void-linux/void-packages/pull/23432/files">
    <a href="/void-linux/void-packages/pull/23432/files" class="tabnav-tab  js-pjax-history-navigate">
      <svg class="octicon octicon-diff" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.75 1.75a.75.75 0 00-1.5 0V5H4a.75.75 0 000 1.5h3.25v3.25a.75.75 0 001.5 0V6.5H12A.75.75 0 0012 5H8.75V1.75zM4 13a.75.75 0 000 1.5h8a.75.75 0 100-1.5H4z"></path></svg>
      Files changed

        <span id="files_tab_counter" class="Counter">
            11
        </span>
    </a>
  </nav>
</div>



    <h2 class="sr-only">Conversation</h2>
    <div id="discussion_bucket"
          class="pull-request-tab-content is-visible js-socket-channel js-updatable-content"
          data-channel="eyJjIjoicHVsbF9yZXF1ZXN0OjQ0NTA1NzcyNjp0aW1lbGluZSIsInQiOjE1OTQwNzk0Mjd9--abf04d9430b68856007ffca620ec1419cf183af032a4c03e41db9f80ead73a8a">
      
<div class="gutter-condensed gutter-lg d-flex">

  <div class="flex-shrink-0 col-9">
        <div
      class="pull-discussion-timeline js-pull-discussion-timeline js-quote-selection-container js-review-state-classes"
      data-quote-markdown=".js-comment-body"
      
      data-issue-and-pr-hovercards-enabled
      data-team-hovercards-enabled
    >
      <div
        class="js-discussion  ml-6 pl-3"
      >

        
<div class="TimelineItem pt-0 js-comment-container js-socket-channel js-updatable-content"
  data-gid="MDExOlB1bGxSZXF1ZXN0NDQ1MDU3NzI2"
  data-url="/_render_node/MDExOlB1bGxSZXF1ZXN0NDQ1MDU3NzI2/pull_requests/body"
  data-channel="eyJjIjoicHVsbF9yZXF1ZXN0OjQ0NTA1NzcyNiIsInQiOjE1OTQwNzk0Mjd9--fe3b2b35cb3e020a34671f91a1fdacee4dc5d82ea83d91fe539bfcee768121bc">

  
<div class="avatar-parent-child TimelineItem-avatar ">
    <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/ericonr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/ericonr"><img class="avatar rounded-1 avatar-user" height="40" width="40" alt="@ericonr" src="https://avatars0.githubusercontent.com/u/34201958?s=88&amp;u=ac83bb84984b627d77e7f888da2bd8fcb79ec978&amp;v=4" /></a>

</div>

  <div class="timeline-comment-group js-minimizable-comment-group js-targetable-element TimelineItem-body my-0 " id="issue-445057726">
    <div class="ml-n3 timeline-comment unminimized-comment comment previewable-edit js-task-list-container js-comment timeline-comment--caret "
        data-body-version="b7e09562d123db613f11592644f2477e"
        data-unfurl-hide-url="/content_reference_attachments/hide">
      <input type="hidden" data-csrf="true" class="js-data-unfurl-hide-url-csrf" value="j+a/TPqmY+D77vjnU04tHEpKIcz+/07S5CVYBRQXArq/3tWbA76rWmEIdVCpbVhVEOv0ZgaKSFSVuc7Km+Eh1Q==" />

      
<div class="timeline-comment-header clearfix ">
  <div class="timeline-comment-actions flex-shrink-0">
    


















<details class="details-overlay details-reset position-relative d-inline-block ">
  <summary class="btn-link timeline-comment-action link-gray">
    <svg aria-label="Show options" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" version="1.1" width="16" height="16" role="img"><path d="M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path></svg>
  </summary>
  <details-menu class="dropdown-menu dropdown-menu-sw show-more-popover text-gray-dark anim-scale-in" style="width:185px">
        <clipboard-copy
    class="dropdown-item btn-link"
    for="pullrequest-445057726-permalink"
    role="menuitem"
    
    >
    Copy link
  </clipboard-copy>

        <button
    type="button"
    class="dropdown-item btn-link d-none js-comment-quote-reply"
    role="menuitem">
    Quote reply
  </button>

      
  </details-menu>
</details>

  </div>


  

      



    
    <span class="timeline-comment-label text-bold tooltipped tooltipped-multiline tooltipped-s" aria-label="This user is a member of the VoidLinux organization.">
      Member
    </span>


  

  

  <h3 class="timeline-comment-header-text f5 text-normal">



    <strong class="css-truncate">
      

  <a class="author link-gray-dark css-truncate-target width-fit" show_full_name="false" data-hovercard-type="user" data-hovercard-url="/users/ericonr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/ericonr">ericonr</a>
  

    </strong>


    commented


      <a href="#issue-445057726" id="pullrequest-445057726-permalink" class="link-gray js-timestamp"><relative-time datetime="2020-07-06T23:50:25Z" class="no-wrap">Jul 6, 2020</relative-time></a>


    <span class="js-comment-edit-history">
    </span>
  </h3>
</div>


      <div class="edit-comment-hide">

        
<task-lists disabled sortable>
<table class="d-block" data-paste-markdown-skip>
  <tbody class="d-block">
    <tr class="d-block">
      <td class="d-block comment-body markdown-body  js-comment-body">
          <p>Okay, so this is a biggie PR, and I do need help for making some decisions.</p>
<ul>
<li>So, basically, <code>gcompat</code> can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet.</li>
<li>I enabled <code>obstack</code> in <code>gcompat</code>, by enabling the dynamic lib in <code>musl-obstack</code>. This completely <span class="issue-keyword tooltipped tooltipped-se" aria-label="This pull request closes issue #22616.">fixes</span> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="631827770" data-permission-text="Title is private" data-url="https://github.com/void-linux/void-packages/issues/22616" data-hovercard-type="issue" data-hovercard-url="/void-linux/void-packages/issues/22616/hovercard" href="https://github.com/void-linux/void-packages/issues/22616">#22616</a>, which needed obstack and <code>_strftime_l</code> symbols (the latter was fixed by gcompat itself).</li>
<li>I split <code>musl-obstack-devel</code>.</li>
<li>I switched package dependencies to <code>musl-obstack-devel</code>, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?</li>
</ul>
      </td>
    </tr>
  </tbody>
</table>
</task-lists>


          
<div class="comment-reactions flex-items-center   js-reactions-container">


</div>

      </div>

    </div>
</div>

</div>


        

  <div id="js-timeline-progressive-loader" data-timeline-item-src="void-linux/void-packages/timeline?id=MDExOlB1bGxSZXF1ZXN0NDQ1MDU3NzI2&amp;variables%5Bafter%5D=Y3Vyc29yOnYyOpPPAAABcyaAT5AH2gAyNDQ1MDU3NzI2OjcxMzNiNmE2NDM1YmJhYWY2MzY1NGIxMjFjODBmYmZlNzM5ZGI2NTY%3D&amp;variables%5Bfirst%5D=60" ></div>


  
  
<div class="js-timeline-item js-timeline-progressive-focus-container" data-gid="MDE3OlB1bGxSZXF1ZXN0Q29tbWl0NDQ1MDU3NzI2OmQzMDdmYzAxYmRmNTE3MzY4NDc2YmNkZDNmZWVkYTMzNzhiZDFiYzU=">
  
      <div class="js-commit-group">
    <div class="TimelineItem pb-1 js-commit-group-header"  id="commits-pushed-d307fc0">
      <div class="TimelineItem-badge">
        <svg class="octicon octicon-repo-push" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 2.5A2.5 2.5 0 013.5 0h8.75a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0V1.5h-8a1 1 0 00-1 1v6.708A2.492 2.492 0 013.5 9h3.25a.75.75 0 010 1.5H3.5a1 1 0 100 2h5.75a.75.75 0 010 1.5H3.5A2.5 2.5 0 011 11.5v-9zm13.23 7.79a.75.75 0 001.06-1.06l-2.505-2.505a.75.75 0 00-1.06 0L9.22 9.229a.75.75 0 001.06 1.061l1.225-1.224v6.184a.75.75 0 001.5 0V9.066l1.224 1.224z"></path></svg>
      </div>
      <div class="TimelineItem-body">
        
  <a class="author link-gray-dark text-bold" data-hovercard-type="user" data-hovercard-url="/users/ericonr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/ericonr">ericonr</a> 

        added <span class="js-commit-group-count">9</span> commits
        <a href="#commits-pushed-d307fc0" class="link-gray">
          <relative-time datetime="2020-07-06T20:45:20Z" class="no-wrap">Jul 6, 2020</relative-time>
        </a>
      </div>
    </div>
  <div class="js-commit-group-commits">
      <div class="TimelineItem TimelineItem--condensed js-commit ">
        <div class="TimelineItem-badge">
          <svg class="octicon octicon-git-commit" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.5 7.75a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm1.43.75a4.002 4.002 0 01-7.86 0H.75a.75.75 0 110-1.5h3.32a4.001 4.001 0 017.86 0h3.32a.75.75 0 110 1.5h-3.32z"></path></svg>
        </div>
        <div class="TimelineItem-body">
          

<div class="js-details-container Details js-socket-channel js-updatable-content"
     data-channel="eyJjIjoicmVwbzoxMzc1MDM0NDI6Y29tbWl0OmQzMDdmYzAxYmRmNTE3MzY4NDc2YmNkZDNmZWVkYTMzNzhiZDFiYzUiLCJ0IjoxNTk0MDc5NDI3fQ==--e075b70de54248f5c1ac47ca88a8b803abbba4a18fdaff116bff5516287bb133"
     data-url="/void-linux/void-packages/pull/23432/commits/d307fc01bdf517368476bcdd3feeda3378bd1bc5/_render_node/commit/pull_condensed">
  <div class="d-flex">
      
<div class="AvatarStack flex-self-start ">
  <div class="AvatarStack-body" aria-label="ericonr">
        <a class="avatar avatar-user" data-skip-pjax="true" data-hovercard-type="user" data-hovercard-url="/users/ericonr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" style="width:20px;height:20px;" href="/ericonr">
          <img height="20" width="20" alt="@ericonr" src="https://avatars3.githubusercontent.com/u/34201958?s=60&amp;u=ac83bb84984b627d77e7f888da2bd8fcb79ec978&amp;v=4" class=" avatar-user" />
</a>  </div>
</div>


    <div class="commit-message pr-1 flex-auto min-width-0">
      <code>
        <a title="gcompat: update to 0.9.0.

Add musl-obstack dependency." data-pjax="true" class="link-gray" href="/void-linux/void-packages/pull/23432/commits/d307fc01bdf517368476bcdd3feeda3378bd1bc5">gcompat: update to 0.9.0.</a>
      </code>

        <span class="hidden-text-expander inline">
          <button type="button" class="ellipsis-expander js-details-target" aria-expanded="false">&hellip;</button>
        </span>

    </div>

    <div class="text-right pr-1">
      

    </div>

    <div class="pr-1 flex-shrink-0" style="width: 16px;">
    </div>

    <div class="text-right">
      <code>
        <a href="/void-linux/void-packages/pull/23432/commits/d307fc01bdf517368476bcdd3feeda3378bd1bc5" class="link-gray">d307fc0</a>
      </code>
    </div>
  </div>
    <div class="Details-content--hidden mt-2">
      <pre class="text-gray ws-pre-wrap">Add musl-obstack dependency.</pre>
    </div>
</div>


        </div>
      </div>
      <div class="TimelineItem TimelineItem--condensed js-commit ">
        <div class="TimelineItem-badge">
          <svg class="octicon octicon-git-commit" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.5 7.75a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm1.43.75a4.002 4.002 0 01-7.86 0H.75a.75.75 0 110-1.5h3.32a4.001 4.001 0 017.86 0h3.32a.75.75 0 110 1.5h-3.32z"></path></svg>
        </div>
        <div class="TimelineItem-body">
          

<div class="js-details-container Details js-socket-channel js-updatable-content"
     data-channel="eyJjIjoicmVwbzoxMzc1MDM0NDI6Y29tbWl0OjIzMWU3MDcxODQzOTA5YWE5Y2NmNDU2NWM5NzNlNDQxNGMxOGQ2MmYiLCJ0IjoxNTk0MDc5NDI3fQ==--548cecfff217bb4e80eb49ec35abb7a0c3e2d23760d780dc0644534d247802f9"
     data-url="/void-linux/void-packages/pull/23432/commits/231e7071843909aa9ccf4565c973e4414c18d62f/_render_node/commit/pull_condensed">
  <div class="d-flex">
      
<div class="AvatarStack flex-self-start ">
  <div class="AvatarStack-body" aria-label="ericonr">
        <a class="avatar avatar-user" data-skip-pjax="true" data-hovercard-type="user" data-hovercard-url="/users/ericonr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" style="width:20px;height:20px;" href="/ericonr">
          <img height="20" width="20" alt="@ericonr" src="https://avatars3.githubusercontent.com/u/34201958?s=60&amp;u=ac83bb84984b627d77e7f888da2bd8fcb79ec978&amp;v=4" class=" avatar-user" />
</a>  </div>
</div>


    <div class="commit-message pr-1 flex-auto min-width-0">
      <code>
        <a title="musl-obstack: ship dynamic lib, split devel." data-pjax="true" class="link-gray" href="/void-linux/void-packages/pull/23432/commits/231e7071843909aa9ccf4565c973e4414c18d62f">musl-obstack: ship dynamic lib, split devel.</a>
      </code>


    </div>

    <div class="text-right pr-1">
      

    </div>

    <div class="pr-1 flex-shrink-0" style="width: 16px;">
    </div>

    <div class="text-right">
      <code>
        <a href="/void-linux/void-packages/pull/23432/commits/231e7071843909aa9ccf4565c973e4414c18d62f" class="link-gray">231e707</a>
      </code>
    </div>
  </div>
</div>


        </div>
      </div>
      <div class="TimelineItem TimelineItem--condensed js-commit ">
        <div class="TimelineItem-badge">
          <svg class="octicon octicon-git-commit" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.5 7.75a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm1.43.75a4.002 4.002 0 01-7.86 0H.75a.75.75 0 110-1.5h3.32a4.001 4.001 0 017.86 0h3.32a.75.75 0 110 1.5h-3.32z"></path></svg>
        </div>
        <div class="TimelineItem-body">
          

<div class="js-details-container Details js-socket-channel js-updatable-content"
     data-channel="eyJjIjoicmVwbzoxMzc1MDM0NDI6Y29tbWl0OjgyZGRjZGE2YmQ2NTYyZjYzNzBmYWI0ZWRiZmNiOWIxYjMwMzZmNzgiLCJ0IjoxNTk0MDc5NDI3fQ==--a51ef15514571d0b06624e5bab2b00a6d74b8746ea1112f253c141c0676906c7"
     data-url="/void-linux/void-packages/pull/23432/commits/82ddcda6bd6562f6370fab4edbfcb9b1b3036f78/_render_node/commit/pull_condensed">
  <div class="d-flex">
      
<div class="AvatarStack flex-self-start ">
  <div class="AvatarStack-body" aria-label="ericonr">
        <a class="avatar avatar-user" data-skip-pjax="true" data-hovercard-type="user" data-hovercard-url="/users/ericonr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" style="width:20px;height:20px;" href="/ericonr">
          <img height="20" width="20" alt="@ericonr" src="https://avatars3.githubusercontent.com/u/34201958?s=60&amp;u=ac83bb84984b627d77e7f888da2bd8fcb79ec978&amp;v=4" class=" avatar-user" />
</a>  </div>
</div>


    <div class="commit-message pr-1 flex-auto min-width-0">
      <code>
        <a title="reiserfsprogs: use musl-obstack-devel." data-pjax="true" class="link-gray" href="/void-linux/void-packages/pull/23432/commits/82ddcda6bd6562f6370fab4edbfcb9b1b3036f78">reiserfsprogs: use musl-obstack-devel.</a>
      </code>


    </div>

    <div class="text-right pr-1">
      

    </div>

    <div class="pr-1 flex-shrink-0" style="width: 16px;">
    </div>

    <div class="text-right">
      <code>
        <a href="/void-linux/void-packages/pull/23432/commits/82ddcda6bd6562f6370fab4edbfcb9b1b3036f78" class="link-gray">82ddcda</a>
      </code>
    </div>
  </div>
</div>


        </div>
      </div>
      <div class="TimelineItem TimelineItem--condensed js-commit ">
        <div class="TimelineItem-badge">
          <svg class="octicon octicon-git-commit" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.5 7.75a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm1.43.75a4.002 4.002 0 01-7.86 0H.75a.75.75 0 110-1.5h3.32a4.001 4.001 0 017.86 0h3.32a.75.75 0 110 1.5h-3.32z"></path></svg>
        </div>
        <div class="TimelineItem-body">
          

<div class="js-details-container Details js-socket-channel js-updatable-content"
     data-channel="eyJjIjoicmVwbzoxMzc1MDM0NDI6Y29tbWl0Ojc4MGZmMDFiNjgwNmYwMzM1YjYzNzEwYTM4MDkyZDI5ZDRhOWM0OWIiLCJ0IjoxNTk0MDc5NDI3fQ==--0e4b283cd6d70146830740567c88bb7b3a2f9c60131f69e188a3f89952c4bc93"
     data-url="/void-linux/void-packages/pull/23432/commits/780ff01b6806f0335b63710a38092d29d4a9c49b/_render_node/commit/pull_condensed">
  <div class="d-flex">
      
<div class="AvatarStack flex-self-start ">
  <div class="AvatarStack-body" aria-label="ericonr">
        <a class="avatar avatar-user" data-skip-pjax="true" data-hovercard-type="user" data-hovercard-url="/users/ericonr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" style="width:20px;height:20px;" href="/ericonr">
          <img height="20" width="20" alt="@ericonr" src="https://avatars3.githubusercontent.com/u/34201958?s=60&amp;u=ac83bb84984b627d77e7f888da2bd8fcb79ec978&amp;v=4" class=" avatar-user" />
</a>  </div>
</div>


    <div class="commit-message pr-1 flex-auto min-width-0">
      <code>
        <a title="perl-Proc-ProcessTable: use musl-obstack-devel." data-pjax="true" class="link-gray" href="/void-linux/void-packages/pull/23432/commits/780ff01b6806f0335b63710a38092d29d4a9c49b">perl-Proc-ProcessTable: use musl-obstack-devel.</a>
      </code>


    </div>

    <div class="text-right pr-1">
      

    </div>

    <div class="pr-1 flex-shrink-0" style="width: 16px;">
    </div>

    <div class="text-right">
      <code>
        <a href="/void-linux/void-packages/pull/23432/commits/780ff01b6806f0335b63710a38092d29d4a9c49b" class="link-gray">780ff01</a>
      </code>
    </div>
  </div>
</div>


        </div>
      </div>
      <div class="TimelineItem TimelineItem--condensed js-commit ">
        <div class="TimelineItem-badge">
          <svg class="octicon octicon-git-commit" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.5 7.75a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm1.43.75a4.002 4.002 0 01-7.86 0H.75a.75.75 0 110-1.5h3.32a4.001 4.001 0 017.86 0h3.32a.75.75 0 110 1.5h-3.32z"></path></svg>
        </div>
        <div class="TimelineItem-body">
          

<div class="js-details-container Details js-socket-channel js-updatable-content"
     data-channel="eyJjIjoicmVwbzoxMzc1MDM0NDI6Y29tbWl0Ojg2NzdiOTM3YWY0NzRlNDdhMTE0MzY5NmE4ZjhmMTQwMGE0MGJkNDIiLCJ0IjoxNTk0MDc5NDI3fQ==--e3d15c202c397a93549a3124f20cb032d79d94ee1e676c6be8e1733817c7283a"
     data-url="/void-linux/void-packages/pull/23432/commits/8677b937af474e47a1143696a8f8f1400a40bd42/_render_node/commit/pull_condensed">
  <div class="d-flex">
      
<div class="AvatarStack flex-self-start ">
  <div class="AvatarStack-body" aria-label="ericonr">
        <a class="avatar avatar-user" data-skip-pjax="true" data-hovercard-type="user" data-hovercard-url="/users/ericonr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" style="width:20px;height:20px;" href="/ericonr">
          <img height="20" width="20" alt="@ericonr" src="https://avatars3.githubusercontent.com/u/34201958?s=60&amp;u=ac83bb84984b627d77e7f888da2bd8fcb79ec978&amp;v=4" class=" avatar-user" />
</a>  </div>
</div>


    <div class="commit-message pr-1 flex-auto min-width-0">
      <code>
        <a title="pahole: use musl-obstack-devel." data-pjax="true" class="link-gray" href="/void-linux/void-packages/pull/23432/commits/8677b937af474e47a1143696a8f8f1400a40bd42">pahole: use musl-obstack-devel.</a>
      </code>


    </div>

    <div class="text-right pr-1">
      

    </div>

    <div class="pr-1 flex-shrink-0" style="width: 16px;">
    </div>

    <div class="text-right">
      <code>
        <a href="/void-linux/void-packages/pull/23432/commits/8677b937af474e47a1143696a8f8f1400a40bd42" class="link-gray">8677b93</a>
      </code>
    </div>
  </div>
</div>


        </div>
      </div>
      <div class="TimelineItem TimelineItem--condensed js-commit ">
        <div class="TimelineItem-badge">
          <svg class="octicon octicon-git-commit" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.5 7.75a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm1.43.75a4.002 4.002 0 01-7.86 0H.75a.75.75 0 110-1.5h3.32a4.001 4.001 0 017.86 0h3.32a.75.75 0 110 1.5h-3.32z"></path></svg>
        </div>
        <div class="TimelineItem-body">
          

<div class="js-details-container Details js-socket-channel js-updatable-content"
     data-channel="eyJjIjoicmVwbzoxMzc1MDM0NDI6Y29tbWl0OjVjZjI1MzU4ZjBhM2Q3ZjUzMjg5OWVhNjNhMzYwY2UxOWU5MmY1M2EiLCJ0IjoxNTk0MDc5NDI3fQ==--2838905fa4986fa6e15c58cfb4b4175b054bce39ff88c3a7537a24d02b5a56df"
     data-url="/void-linux/void-packages/pull/23432/commits/5cf25358f0a3d7f532899ea63a360ce19e92f53a/_render_node/commit/pull_condensed">
  <div class="d-flex">
      
<div class="AvatarStack flex-self-start ">
  <div class="AvatarStack-body" aria-label="ericonr">
        <a class="avatar avatar-user" data-skip-pjax="true" data-hovercard-type="user" data-hovercard-url="/users/ericonr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" style="width:20px;height:20px;" href="/ericonr">
          <img height="20" width="20" alt="@ericonr" src="https://avatars3.githubusercontent.com/u/34201958?s=60&amp;u=ac83bb84984b627d77e7f888da2bd8fcb79ec978&amp;v=4" class=" avatar-user" />
</a>  </div>
</div>


    <div class="commit-message pr-1 flex-auto min-width-0">
      <code>
        <a title="hidrd: use musl-obstack-devel." data-pjax="true" class="link-gray" href="/void-linux/void-packages/pull/23432/commits/5cf25358f0a3d7f532899ea63a360ce19e92f53a">hidrd: use musl-obstack-devel.</a>
      </code>


    </div>

    <div class="text-right pr-1">
      

    </div>

    <div class="pr-1 flex-shrink-0" style="width: 16px;">
    </div>

    <div class="text-right">
      <code>
        <a href="/void-linux/void-packages/pull/23432/commits/5cf25358f0a3d7f532899ea63a360ce19e92f53a" class="link-gray">5cf2535</a>
      </code>
    </div>
  </div>
</div>


        </div>
      </div>
      <div class="TimelineItem TimelineItem--condensed js-commit ">
        <div class="TimelineItem-badge">
          <svg class="octicon octicon-git-commit" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.5 7.75a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm1.43.75a4.002 4.002 0 01-7.86 0H.75a.75.75 0 110-1.5h3.32a4.001 4.001 0 017.86 0h3.32a.75.75 0 110 1.5h-3.32z"></path></svg>
        </div>
        <div class="TimelineItem-body">
          

<div class="js-details-container Details js-socket-channel js-updatable-content"
     data-channel="eyJjIjoicmVwbzoxMzc1MDM0NDI6Y29tbWl0OmZhN2FmODFkOTcyMWYwNWQwNTdhNzFjNjY1MWU2NWI4NzkyZDM2M2YiLCJ0IjoxNTk0MDc5NDI3fQ==--5341623fd41e37cb166c1217d26f4d4be288a86ec0577cff10176dbdc4617950"
     data-url="/void-linux/void-packages/pull/23432/commits/fa7af81d9721f05d057a71c6651e65b8792d363f/_render_node/commit/pull_condensed">
  <div class="d-flex">
      
<div class="AvatarStack flex-self-start ">
  <div class="AvatarStack-body" aria-label="ericonr">
        <a class="avatar avatar-user" data-skip-pjax="true" data-hovercard-type="user" data-hovercard-url="/users/ericonr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" style="width:20px;height:20px;" href="/ericonr">
          <img height="20" width="20" alt="@ericonr" src="https://avatars3.githubusercontent.com/u/34201958?s=60&amp;u=ac83bb84984b627d77e7f888da2bd8fcb79ec978&amp;v=4" class=" avatar-user" />
</a>  </div>
</div>


    <div class="commit-message pr-1 flex-auto min-width-0">
      <code>
        <a title="elfutils: use musl-obstack-devel." data-pjax="true" class="link-gray" href="/void-linux/void-packages/pull/23432/commits/fa7af81d9721f05d057a71c6651e65b8792d363f">elfutils: use musl-obstack-devel.</a>
      </code>


    </div>

    <div class="text-right pr-1">
      

    </div>

    <div class="pr-1 flex-shrink-0" style="width: 16px;">
    </div>

    <div class="text-right">
      <code>
        <a href="/void-linux/void-packages/pull/23432/commits/fa7af81d9721f05d057a71c6651e65b8792d363f" class="link-gray">fa7af81</a>
      </code>
    </div>
  </div>
</div>


        </div>
      </div>
      <div class="TimelineItem TimelineItem--condensed js-commit ">
        <div class="TimelineItem-badge">
          <svg class="octicon octicon-git-commit" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.5 7.75a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm1.43.75a4.002 4.002 0 01-7.86 0H.75a.75.75 0 110-1.5h3.32a4.001 4.001 0 017.86 0h3.32a.75.75 0 110 1.5h-3.32z"></path></svg>
        </div>
        <div class="TimelineItem-body">
          

<div class="js-details-container Details js-socket-channel js-updatable-content"
     data-channel="eyJjIjoicmVwbzoxMzc1MDM0NDI6Y29tbWl0Ojk0ZDE3YjA0MWI5OTk1NDA2Y2ZjM2NlODg5OWQwZGNjZjlmYWM4MzUiLCJ0IjoxNTk0MDc5NDI3fQ==--7e8175592505be4b157ca638fa43c77f67c7c577e6a939be755b96e4d30af980"
     data-url="/void-linux/void-packages/pull/23432/commits/94d17b041b9995406cfc3ce8899d0dccf9fac835/_render_node/commit/pull_condensed">
  <div class="d-flex">
      
<div class="AvatarStack flex-self-start ">
  <div class="AvatarStack-body" aria-label="ericonr">
        <a class="avatar avatar-user" data-skip-pjax="true" data-hovercard-type="user" data-hovercard-url="/users/ericonr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" style="width:20px;height:20px;" href="/ericonr">
          <img height="20" width="20" alt="@ericonr" src="https://avatars3.githubusercontent.com/u/34201958?s=60&amp;u=ac83bb84984b627d77e7f888da2bd8fcb79ec978&amp;v=4" class=" avatar-user" />
</a>  </div>
</div>


    <div class="commit-message pr-1 flex-auto min-width-0">
      <code>
        <a title="cronie: use musl-obstack-devel." data-pjax="true" class="link-gray" href="/void-linux/void-packages/pull/23432/commits/94d17b041b9995406cfc3ce8899d0dccf9fac835">cronie: use musl-obstack-devel.</a>
      </code>


    </div>

    <div class="text-right pr-1">
      

    </div>

    <div class="pr-1 flex-shrink-0" style="width: 16px;">
    </div>

    <div class="text-right">
      <code>
        <a href="/void-linux/void-packages/pull/23432/commits/94d17b041b9995406cfc3ce8899d0dccf9fac835" class="link-gray">94d17b0</a>
      </code>
    </div>
  </div>
</div>


        </div>
      </div>
      <div class="TimelineItem TimelineItem--condensed js-commit ">
        <div class="TimelineItem-badge">
          <svg class="octicon octicon-git-commit" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.5 7.75a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm1.43.75a4.002 4.002 0 01-7.86 0H.75a.75.75 0 110-1.5h3.32a4.001 4.001 0 017.86 0h3.32a.75.75 0 110 1.5h-3.32z"></path></svg>
        </div>
        <div class="TimelineItem-body">
          

<div class="js-details-container Details js-socket-channel js-updatable-content"
     data-channel="eyJjIjoicmVwbzoxMzc1MDM0NDI6Y29tbWl0OjcxMzNiNmE2NDM1YmJhYWY2MzY1NGIxMjFjODBmYmZlNzM5ZGI2NTYiLCJ0IjoxNTk0MDc5NDI3fQ==--6249f2a9eadb2836dc54c1e6928bf4f156924efec01dd7c175769cd455b94b9a"
     data-url="/void-linux/void-packages/pull/23432/commits/7133b6a6435bbaaf63654b121c80fbfe739db656/_render_node/commit/pull_condensed">
  <div class="d-flex">
      
<div class="AvatarStack flex-self-start ">
  <div class="AvatarStack-body" aria-label="ericonr">
        <a class="avatar avatar-user" data-skip-pjax="true" data-hovercard-type="user" data-hovercard-url="/users/ericonr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" style="width:20px;height:20px;" href="/ericonr">
          <img height="20" width="20" alt="@ericonr" src="https://avatars3.githubusercontent.com/u/34201958?s=60&amp;u=ac83bb84984b627d77e7f888da2bd8fcb79ec978&amp;v=4" class=" avatar-user" />
</a>  </div>
</div>


    <div class="commit-message pr-1 flex-auto min-width-0">
      <code>
        <a title="spotify: include musl support." data-pjax="true" class="link-gray" href="/void-linux/void-packages/pull/23432/commits/7133b6a6435bbaaf63654b121c80fbfe739db656">spotify: include musl support.</a>
      </code>


    </div>

    <div class="text-right pr-1">
      

    </div>

    <div class="pr-1 flex-shrink-0" style="width: 16px;">
    </div>

    <div class="text-right">
      <code>
        <a href="/void-linux/void-packages/pull/23432/commits/7133b6a6435bbaaf63654b121c80fbfe739db656" class="link-gray">7133b6a</a>
      </code>
    </div>
  </div>
</div>


        </div>
      </div>
  </div>
</div>


</div>






<!-- Rendered timeline since 2020-07-06 16:40:10 -->
<div id="partial-timeline"
      class="js-timeline-marker js-socket-channel js-updatable-content"
      data-channel="eyJjIjoicHVsbF9yZXF1ZXN0OjQ0NTA1NzcyNiIsInQiOjE1OTQwNzk0Mjd9--fe3b2b35cb3e020a34671f91a1fdacee4dc5d82ea83d91fe539bfcee768121bc"
      data-url="/_render_node/MDExOlB1bGxSZXF1ZXN0NDQ1MDU3NzI2/pull_requests/unread_timeline?variables%5BhasFocusedReviewComment%5D=false&amp;variables%5BhasFocusedReviewThread%5D=false&amp;variables%5BsyntaxHighlightingEnabled%5D=true&amp;variables%5BtimelinePageSize%5D=30&amp;variables%5BtimelineSince%5D=2020-07-06T23%3A40%3A10Z"
      data-last-modified="Mon, 06 Jul 2020 23:40:10 GMT"
      data-gid="MDExOlB1bGxSZXF1ZXN0NDQ1MDU3NzI2">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="d-none js-timeline-marker-form" action="/_graphql/MarkNotificationSubjectAsRead" accept-charset="UTF-8" data-remote="true" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="a4tGJDq0nsnrXvJ13ED5Q3pyzOAueh3WsKzxTjcRIgFDRDyRDqgfpuNJGFqg3LbJ5J9z7uRYxUzLL+266yFiOw==" />
    <input type="hidden" name="variables[subjectId]" value="MDExOlB1bGxSZXF1ZXN0NDQ1MDU3NzI2">
</form></div>


      </div>

      <div class="discussion-timeline-actions">
              
<div class="flash flash-warn mt-3">
    <a rel="nofollow" class="btn btn-primary" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;signed out comment&quot;,&quot;repository_id&quot;:137503442,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/void-linux/void-packages/pull/23432&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="9314cb7019cb7f2ddfef029cad64bbcd8d423f5a62c3b09188bd47908d556b00" href="/join?source=comment-repo">Sign up for free</a>
    <strong>to join this conversation on GitHub</strong>.
    Already have an account?
    <a rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;signed out comment&quot;,&quot;repository_id&quot;:137503442,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/void-linux/void-packages/pull/23432&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="0ee1e859f47c9b6b0be9beafd556f8d59681513e8148de8bbe8441eb5d35ace8" href="/login?return_to=https%3A%2F%2Fgithub.com%2Fvoid-linux%2Fvoid-packages%2Fpull%2F23432">Sign in to comment</a>
</div>


      </div>
    </div>

</div>

    <div class="flex-shrink-0 col-3">
          

<div id="partial-discussion-sidebar"
  class="js-socket-channel js-updatable-content"
  data-channel="eyJjIjoicHVsbF9yZXF1ZXN0OjQ0NTA1NzcyNiIsInQiOjE1OTQwNzk0Mjd9--fe3b2b35cb3e020a34671f91a1fdacee4dc5d82ea83d91fe539bfcee768121bc"
  data-gid="MDExOlB1bGxSZXF1ZXN0NDQ1MDU3NzI2"
  data-url="/void-linux/void-packages/issues/23432/show_partial?partial=issues%2Fsidebar"
  data-project-hovercards-enabled>


    
<div class="discussion-sidebar-item sidebar-assignee js-discussion-sidebar-item position-relative" data-team-hovercards-enabled>
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-issue-sidebar-form" aria-label="Select reviewers" action="/void-linux/void-packages/pull/23432/review-requests?pr_global_id=MDExOlB1bGxSZXF1ZXN0NDQ1MDU3NzI2" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="0CPwWUI8wMalTcpwgBiaoDs387277TgAMeklHDcdDM/pD6OAGFYpBsxMsLxg/N5D+bwwweqW9rpVcXm3q37aZQ==" />
    
  <div class="discussion-sidebar-heading text-bold">
    Reviewers
  </div>

    <span class="css-truncate">
    No reviews
</span>

</form>
</div>


  <div class="discussion-sidebar-item sidebar-assignee js-discussion-sidebar-item">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-issue-sidebar-form" aria-label="Select assignees" action="/void-linux/void-packages/issues/23432/assignees" accept-charset="UTF-8" method="post"><input type="hidden" name="_method" value="put" /><input type="hidden" data-csrf="true" name="authenticity_token" value="jPqij8hzpNkUy+iVB4EJMHx/4kbiKCwDgKZONhepBykcCaXsHIVRUvle/IGNGl9foy1dd+9p6pohJHZVrVP97Q==" />
    
  <div class="discussion-sidebar-heading text-bold">
    Assignees
  </div>

    
<span class="css-truncate js-issue-assignees">
    No one assigned
</span>

</form></div>

    <div class="discussion-sidebar-item sidebar-labels js-discussion-sidebar-item">
  


  <div class="discussion-sidebar-heading text-bold">
    Labels
  </div>

  <div class="labels css-truncate js-issue-labels">
    None yet
</div>

</div>

    
<div class="discussion-sidebar-item js-discussion-sidebar-item">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-issue-sidebar-form" aria-label="Select projects" action="/void-linux/void-packages/projects/issues/23432" accept-charset="UTF-8" method="post"><input type="hidden" name="_method" value="put" /><input type="hidden" data-csrf="true" name="authenticity_token" value="DKtiHn6jFvpik4U5vUmJ+ZJ9k6ExqJKVb8vnfIUoheZ6MQr2cksPNwA6mkkuEWVGH0P63vyR4nGIOt+TFpiivA==" />
    
  <div class="discussion-sidebar-heading text-bold">
    Projects
  </div>

    
<span class="css-truncate sidebar-progress-bar">
    None yet
</span>

</form></div>

    <div class="discussion-sidebar-item sidebar-progress-bar js-discussion-sidebar-item">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-issue-sidebar-form" aria-label="Select milestones" action="/void-linux/void-packages/issues/23432/set_milestone?partial=issues%2Fsidebar%2Fshow%2Fmilestone" accept-charset="UTF-8" method="post"><input type="hidden" name="_method" value="put" /><input type="hidden" data-csrf="true" name="authenticity_token" value="djZfsBoViWqAJKdkqmcp/7GhHrp0p2sByJhASfJjW1e1uCjXezKYzZQMe38H9zN6Y0FOyCdqD2y27N7OczEpNg==" />
    
  <div class="discussion-sidebar-heading text-bold">
    Milestone
  </div>

      No milestone

</form></div>

    
<div class="discussion-sidebar-item js-discussion-sidebar-item" data-issue-and-pr-hovercards-enabled >
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-issue-sidebar-form" aria-label="Link issues" action="/void-linux/void-packages/issues/closing_references?source_id=445057726&amp;source_type=PULL_REQUEST" accept-charset="UTF-8" method="post"><input type="hidden" name="_method" value="put" /><input type="hidden" data-csrf="true" name="authenticity_token" value="NiWJQWP73YuzxjjpdtYSgCK9JNLDJSwDGnbMAwqRg6hGj+mgHriQlnWRRH6eIi2J+60AsrAGWY31B3MaZRfKkA==" />
    
  <div class="discussion-sidebar-heading text-bold">
    Linked issues
  </div>


      
<p>Successfully merging this pull request may close these issues.</p>

    <div class="css-truncate my-1">
      <a href="https://github.com/void-linux/void-packages/issues/22616" data-hydro-click="{&quot;event_type&quot;:&quot;issue_cross_references.click&quot;,&quot;payload&quot;:{&quot;reference_location&quot;:&quot;PULL_REQUEST_SIDEBAR&quot;,&quot;user_id&quot;:null,&quot;issue_id&quot;:631827770,&quot;pull_request_id&quot;:445057726,&quot;originating_url&quot;:&quot;https://github.com/void-linux/void-packages/pull/23432&quot;}}" data-hydro-click-hmac="6a6e819d0e068c896664ed89b2797a53d7e291eca80f397345fba03b01f33251" data-hovercard-type="issue" data-hovercard-url="/void-linux/void-packages/issues/22616/hovercard" class="link-gray-dark text-bold css-truncate-target width-fit">
        <svg class="octicon octicon-issue-opened open" title="Open" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 0zm-.25-6.25a.75.75 0 00-1.5 0v3.5a.75.75 0 001.5 0v-3.5z"></path></svg>
        Missing obstack symbols for arduino-cli binaries on musl
      </a>
    </div>

</form>
</div>

  
  <div id="partial-users-participants" class="discussion-sidebar-item">
  <div class="participation">

    <div class="discussion-sidebar-heading text-bold">
      1 participant
    </div>
    <div class="participation-avatars d-flex flex-wrap">
        <a class="participant-avatar" data-hovercard-type="user" data-hovercard-url="/users/ericonr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/ericonr">
          <img class="avatar avatar-user" src="https://avatars0.githubusercontent.com/u/34201958?s=52&amp;v=4" width="26" height="26" alt="@ericonr" /> 
</a>    </div>
  </div>
</div>


  
  



  

</div>



</div>
</div>



    </div>
  </div>
  <div hidden>
  <span class="js-add-to-batch-enabled">Add this suggestion to a batch that can be applied as a single commit.</span>
  <span class="js-unchanged-suggestion">This suggestion is invalid because no changes were made to the code.</span>
  <span class="js-closed-pull">Suggestions cannot be applied while the pull request is closed.</span>
  <span class="js-viewing-subset-changes">Suggestions cannot be applied while viewing a subset of changes.</span>
  <span class="js-one-suggestion-per-line">Only one suggestion per line can be applied in a batch.</span>
  <span class="js-reenable-add-to-batch">Add this suggestion to a batch that can be applied as a single commit.</span>
  <span class="js-validation-on-left-blob">Applying suggestions on deleted lines is not supported.</span>
  <span class="js-validation-on-right-blob">You must change the existing code in this line in order to create a valid suggestion.</span>
  <span class="js-outdated-comment">Outdated suggestions cannot be applied.</span>
  <span class="js-resolved-thread">This suggestion has been applied or marked resolved.</span>
  <span class="js-pending-review">Suggestions cannot be applied from pending reviews.</span>
  <span class="js-is-multiline">Suggestions cannot be applied on multi-line comments.</span>
  <div class="form-group errored m-0 error js-suggested-changes-inline-validation-template d-flex" style="cursor: default;">
    <span class="js-suggested-changes-inline-error-message position-relative error m-0" style="max-width: inherit;"></span>
  </div>
</div>


  </div>


  </div>
</div>

    </main>
  </div>
  

  </div>

        
<div class="footer container-xl width-full px-3" role="contentinfo">
  <div class="position-relative d-flex flex-justify-between pt-6 pb-2 mt-6 f6 text-gray border-top border-gray-light ">
    <ul class="list-style-none d-flex flex-wrap ">
      <li class="mr-3">&copy; 2020 GitHub, Inc.</li>
        <li class="mr-3"><a data-ga-click="Footer, go to terms, text:terms" href="https://github.com/site/terms">Terms</a></li>
        <li class="mr-3"><a data-ga-click="Footer, go to privacy, text:privacy" href="https://github.com/site/privacy">Privacy</a></li>
        <li class="mr-3"><a data-ga-click="Footer, go to security, text:security" href="https://github.com/security">Security</a></li>
        <li class="mr-3"><a href="https://githubstatus.com/" data-ga-click="Footer, go to status, text:status">Status</a></li>
        <li><a data-ga-click="Footer, go to help, text:help" href="https://help.github.com">Help</a></li>

    </ul>

    <a aria-label="Homepage" title="GitHub" class="footer-octicon d-none d-lg-block mx-lg-4" href="https://github.com">
      <svg height="24" class="octicon octicon-mark-github" viewBox="0 0 16 16" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path></svg>
</a>
   <ul class="list-style-none d-flex flex-wrap ">
        <li class="mr-3"><a data-ga-click="Footer, go to contact, text:contact" href="https://github.com/contact">Contact GitHub</a></li>
        <li class="mr-3"><a href="https://github.com/pricing" data-ga-click="Footer, go to Pricing, text:Pricing">Pricing</a></li>
      <li class="mr-3"><a href="https://developer.github.com" data-ga-click="Footer, go to api, text:api">API</a></li>
      <li class="mr-3"><a href="https://training.github.com" data-ga-click="Footer, go to training, text:training">Training</a></li>
        <li class="mr-3"><a href="https://github.blog" data-ga-click="Footer, go to blog, text:blog">Blog</a></li>
        <li><a data-ga-click="Footer, go to about, text:about" href="https://github.com/about">About</a></li>
    </ul>
  </div>
  <div class="d-flex flex-justify-center pb-6">
    <span class="f6 text-gray-light"></span>
  </div>
</div>



  <div id="ajax-error-message" class="ajax-error-message flash flash-error">
    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path></svg>
    <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
      <svg class="octicon octicon-x" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg>
    </button>
    You can’t perform that action at this time.
  </div>


    <script crossorigin="anonymous" async="async" integrity="sha512-WcQmT2vhcClFVOaaAJV/M+HqsJ2Gq/myvl6F3gCVBxykazXTs+i5fvxncSXwyG1CSfcrqmLFw/R/bmFYzprX2A==" type="application/javascript" id="js-conditional-compat" data-src="https://github.githubassets.com/assets/compat-bootstrap-59c4264f.js"></script>
    <script crossorigin="anonymous" integrity="sha512-Xmgn7zbbctMYYn3NwkqJMhjQ5waCDf1M6Vxp7htDQgt96krJvVzHm+H7fqwkmk6LuEeD9EQxYNRCeTGrKH6DnQ==" type="application/javascript" src="https://github.githubassets.com/assets/environment-bootstrap-5e6827ef.js"></script>
    <script crossorigin="anonymous" async="async" integrity="sha512-XWz5HaaTTrTqPbip/poDC93vFrDNSzLklq8U2NDvVKkqFnGnjKWXc4oqIroQ7niVJGouPSNavRlVOj9sG46GDQ==" type="application/javascript" src="https://github.githubassets.com/assets/vendor-5d6cf91d.js"></script>
    <script crossorigin="anonymous" async="async" integrity="sha512-cE28yLn9o04W5DxHweWJeErr+zpd4RcpU7r+RSLrMbhxLRAWMpgytJIT+LmA4g17nMMe2R8dpsLn9MtyL7KhMg==" type="application/javascript" src="https://github.githubassets.com/assets/frameworks-704dbcc8.js"></script>
    
    <script crossorigin="anonymous" async="async" integrity="sha512-PNqFfq4+roUB9WDqkVg5LzFjGNPdvKCVwPMYcZjKf25ESr/LS0w36zmODeHPmKIfzIYrWV/1CoHDV0paCktoRw==" type="application/javascript" src="https://github.githubassets.com/assets/github-bootstrap-3cda857e.js"></script>
    
      <script crossorigin="anonymous" async="async" integrity="sha512-4GcSWGoe36+BoWho4gtJcByZe8j43w+lt2/PDe3rmBxRVSgD29YipDwuIywe8fvOd2b2CszBqaPGxSznUtE3Xg==" type="application/javascript" data-module-id="./drag-drop.js" data-src="https://github.githubassets.com/assets/drag-drop-e0671258.js"></script>
      <script crossorigin="anonymous" async="async" integrity="sha512-2k8dDHk0yt52uKvOvgc9cwOXOeJhxBfVP5kPS2BrCdytDmtEIJ2yone26vFENAyk1a2aFQ7KDgEevRQafuAf8A==" type="application/javascript" data-module-id="./gist-vendor.js" data-src="https://github.githubassets.com/assets/gist-vendor-da4f1d0c.js"></script>
      <script crossorigin="anonymous" async="async" integrity="sha512-iv+4yAluOjiG50ZypUBIWIUCRDo6JEBf2twvmd5AelxgPQJO/XC1oNMGTMdDfKt30p7G7fHEOTZ2utHWDJ9PPQ==" type="application/javascript" data-module-id="./randomColor.js" data-src="https://github.githubassets.com/assets/randomColor-8affb8c8.js"></script>
    
    
  <div class="js-stale-session-flash flash flash-warn flash-banner" hidden
    >
    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path></svg>
    <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span>
    <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span>
  </div>
  <template id="site-details-dialog">
  <details class="details-reset details-overlay details-overlay-dark lh-default text-gray-dark hx_rsm" open>
    <summary role="button" aria-label="Close dialog"></summary>
    <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal">
      <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog>
        <svg class="octicon octicon-x" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg>
      </button>
      <div class="octocat-spinner my-6 js-details-dialog-spinner"></div>
    </details-dialog>
  </details>
</template>

  <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;" tabindex="0">
  <div class="Popover-message Popover-message--bottom-left Popover-message--large Box box-shadow-large" style="width:360px;">
  </div>
</div>


  </body>
</html>


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
@ 2020-07-06 23:54 ` ericonr
  2020-07-07  4:59 ` [PR PATCH] [Updated] " ericonr
                   ` (21 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-06 23:54 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 251 bytes --]

New comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/23432#issuecomment-654520011

Comment:
@q66 your patch seems to be included in this release already

@pullmoll what do you think about this change?

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR PATCH] [Updated] [RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
  2020-07-06 23:54 ` [RFC][WIP] " ericonr
@ 2020-07-07  4:59 ` ericonr
  2020-07-07 20:48 ` kqo
                   ` (20 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-07  4:59 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 1150 bytes --]

There is an updated pull request by ericonr against master on the void-packages repository

https://github.com/ericonr/void-packages gcompat
https://github.com/void-linux/void-packages/pull/23432

[RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
Okay, so this is a biggie PR, and I do need help for making some decisions.

- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet. If I can't get it working soon, I will leave the spotify commit out of this one.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `__strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?

A patch file from https://github.com/void-linux/void-packages/pull/23432.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcompat-23432.patch --]
[-- Type: text/x-diff, Size: 13649 bytes --]

From 231e7071843909aa9ccf4565c973e4414c18d62f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:26:32 -0300
Subject: [PATCH 1/9] musl-obstack: ship dynamic lib, split devel.

---
 common/shlibs                 |  1 +
 srcpkgs/musl-obstack/template | 16 +++++++++++++---
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/common/shlibs b/common/shlibs
index 878ca5a5ac6..77242f9c58c 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3980,3 +3980,4 @@ libselinux.so.1 libselinux-3.0_1
 libsepol.so.1 libsepol-3.0_1
 libfrrcares.so.0 libfrr-7.3.1_1
 libhugetlbfs.so.0 libhugetlbfs-2.22_1
+libobstack.so.0 musl-obstack-1.1_4
diff --git a/srcpkgs/musl-obstack/template b/srcpkgs/musl-obstack/template
index 2cd2ddf2efc..4e8bee6afec 100644
--- a/srcpkgs/musl-obstack/template
+++ b/srcpkgs/musl-obstack/template
@@ -1,16 +1,15 @@
 # Template file for 'musl-obstack'
 pkgname=musl-obstack
 version=1.1
-revision=3
+revision=4
 archs="*-musl"
 build_style=gnu-configure
-configure_args="--disable-shared"
 hostmakedepends="automake libtool"
 short_desc="Implementation of obstack for musl libc"
 maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
 license="GPL-2.0-or-later"
 homepage="https://github.com/void-linux/musl-obstack"
-distfiles="https://github.com/void-linux/${pkgname}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
+distfiles="${homepage}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
 checksum=52a216613e7d55e8725e43d017bb2d49a4b1ffa1e06da472f03c7f9875df7d0d
 
 CFLAGS="-fPIC"
@@ -22,3 +21,14 @@ pre_configure() {
 post_install() {
 	vinstall ${pkgname}.pc 644 usr/lib/pkgconfig
 }
+
+musl-obstack-devel_package() {
+	depends="${sourcepkg}-${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/libobstack.a
+		vmove usr/lib/libobstack.so
+		vmove usr/lib/pkgconfig
+	}
+}

From d307fc01bdf517368476bcdd3feeda3378bd1bc5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:20 -0300
Subject: [PATCH 2/9] gcompat: update to 0.9.0.

Add musl-obstack dependency.
---
 .../gcompat/patches/ppc-libc_start_main.patch | 67 -------------------
 srcpkgs/gcompat/template                      | 10 +--
 2 files changed, 6 insertions(+), 71 deletions(-)
 delete mode 100644 srcpkgs/gcompat/patches/ppc-libc_start_main.patch

diff --git a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch b/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
deleted file mode 100644
index 518292745f7..00000000000
--- a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d30e49d10cefeb2748373127e1d1aba1184f653d Mon Sep 17 00:00:00 2001
-From: q66 <daniel@octaforge.org>
-Date: Sun, 10 Nov 2019 15:32:28 +0100
-Subject: [PATCH 1/1] internal: add a wrapper for __libc_start_main for
- PowerPC(64(le))
-
-This is necessary because the musl and glibc function signatures
-differ significantly.
----
- libgcompat/internal.c | 41 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 41 insertions(+)
-
-diff --git a/libgcompat/internal.c b/libgcompat/internal.c
-index 450c5e4..53ac429 100644
---- libgcompat/internal.c
-+++ libgcompat/internal.c
-@@ -2,6 +2,47 @@
- #include <stdio.h>
- #include <stdlib.h>
- 
-+#if defined(__powerpc__)
-+
-+/* On PowerPC as well as ppc64, we need to fix up __libc_start_main as the
-+ * glibc and musl versions have wildly different signatures, which would
-+ * result in the arguments to __libc_start_main being completely wrong.
-+ *
-+ * Using dlsym in this context is mildly questionable as this is before
-+ * the full initialization has been done, but there is no better way.
-+ */
-+
-+#include <dlfcn.h>
-+
-+struct startup_info {
-+	void *sda_base;
-+	void *f_main;
-+	void *f_init;
-+	void *f_fini;
-+};
-+
-+typedef int (*start_main_t)(void *mf, int argc, char **argv);
-+
-+/*
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/crt/crt1.c?id=90251cf
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/src/env/__libc_start_main.c?id=90251cf#n71
-+ * ref: https://github.com/bminor/glibc/blob/5cb226d/sysdeps/unix/sysv/linux/powerpc/libc-start.c#L36
-+ */
-+int __libc_start_main(void *argc, void *argv, void *ev, void *auxv, void *fini,
-+                      struct startup_info *si, long *p)
-+{
-+	(void)argc;
-+	(void)argv;
-+	(void)ev;
-+	(void)auxv;
-+	(void)fini;
-+	/* argc/argv from the stack, main from startup_info */
-+	start_main_t mainf = (start_main_t)dlsym(RTLD_NEXT, "__libc_start_main");
-+	return mainf(si->f_main, *p, (void *)(p + 1));
-+}
-+
-+#endif /* defined(__powerpc__) */
-+
- void GCOMPAT__panic(const char *fmt, ...)
- {
- 	va_list va;
--- 
-2.23.0
-
diff --git a/srcpkgs/gcompat/template b/srcpkgs/gcompat/template
index 237f97bd5e9..b2c1e9f8230 100644
--- a/srcpkgs/gcompat/template
+++ b/srcpkgs/gcompat/template
@@ -1,14 +1,16 @@
 # Template file for 'gcompat'
 pkgname=gcompat
-version=0.4.0
+version=0.9.0
 revision=1
 build_style=gnu-makefile
+hostmakedepends="pkg-config"
+makedepends="musl-obstack-devel"
 short_desc="Compatibility layer to allow running glibc binaries on musl systems"
 maintainer="Daniel James <djames@orcadian.net>"
 license="ISC"
 homepage="https://code.foxkit.us/adelie/gcompat"
 distfiles="https://distfiles.AdelieLinux.org/source/${pkgname}/${pkgname}-${version}.tar.xz"
-checksum=9903fac7b70de3ba7736ae2987fa00bbafff7bfcf6a9c88731c292dff19e44e2
+checksum=4555d045d7d2831d11b907719005c5dfbc77642c32f8c0172d40883026ffaf53
 
 build_options="libucontext"
 desc_option_libucontext="Build with ucontext support via libucontext"
@@ -43,10 +45,10 @@ esac
 
 make_build_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
  LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
 make_install_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
  LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
 
 if [ "$build_option_libucontext" ]; then
 	makedepends+=" libucontext-devel"

From 82ddcda6bd6562f6370fab4edbfcb9b1b3036f78 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:12 -0300
Subject: [PATCH 3/9] reiserfsprogs: use musl-obstack-devel.

---
 srcpkgs/reiserfsprogs/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/reiserfsprogs/template b/srcpkgs/reiserfsprogs/template
index 121b03a95a4..0df0b6261a6 100644
--- a/srcpkgs/reiserfsprogs/template
+++ b/srcpkgs/reiserfsprogs/template
@@ -14,7 +14,7 @@ checksum=0e95b67fa7746a3c2d59145e9b9c2feb4a6be52853e83b497b182eae508e62e3
 
 case "$XBPS_TARGET_MACHINE" in
 	*-musl)
-		makedepends+=" musl-obstack"
+		makedepends+=" musl-obstack-devel"
 		LDFLAGS="-lobstack"
 	;;
 esac

From 780ff01b6806f0335b63710a38092d29d4a9c49b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:40 -0300
Subject: [PATCH 4/9] perl-Proc-ProcessTable: use musl-obstack-devel.

---
 srcpkgs/perl-Proc-ProcessTable/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/perl-Proc-ProcessTable/template b/srcpkgs/perl-Proc-ProcessTable/template
index 58c07f2cb22..aad0248969d 100644
--- a/srcpkgs/perl-Proc-ProcessTable/template
+++ b/srcpkgs/perl-Proc-ProcessTable/template
@@ -15,5 +15,5 @@ distfiles="${CPAN_SITE}/Proc/Proc-ProcessTable-${version}.tar.gz"
 checksum=f8cc5054d78c35a0ce39fb75430b4ef402e2a99013d2ec37e7997f316594606c
 
 case "$XBPS_TARGET_MACHINE" in
-	*-musl) makedepends+=" musl-obstack" ;;
+	*-musl) makedepends+=" musl-obstack-devel" ;;
 esac

From 8677b937af474e47a1143696a8f8f1400a40bd42 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:00 -0300
Subject: [PATCH 5/9] pahole: use musl-obstack-devel.

---
 srcpkgs/pahole/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/pahole/template b/srcpkgs/pahole/template
index e504d3479f7..085eee87032 100644
--- a/srcpkgs/pahole/template
+++ b/srcpkgs/pahole/template
@@ -16,7 +16,7 @@ checksum="51e35041ce43ed08922037a1ee9e415aff1590e0d8d7cbe3e2b003f388db0a8a
  a616ba2ea72d00b4022689b17f4a78365379e3040d0f1a66d28eba52c528e480"
 
 case $XBPS_TARGET_MACHINE in
-	*-musl) makedepends+=" musl-obstack argp-standalone"
+	*-musl) makedepends+=" musl-obstack-devel argp-standalone"
 esac
 
 pre_patch() {

From 5cf25358f0a3d7f532899ea63a360ce19e92f53a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:12 -0300
Subject: [PATCH 6/9] hidrd: use musl-obstack-devel.

---
 srcpkgs/hidrd/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/hidrd/template b/srcpkgs/hidrd/template
index 1bb75b98a0c..c9aac4e7f0c 100644
--- a/srcpkgs/hidrd/template
+++ b/srcpkgs/hidrd/template
@@ -14,7 +14,7 @@ checksum=0147993dedb3066873d22fab1dc3aafec78d8c5783d168cccc43126f0fc3b307
 case $XBPS_TARGET_MACHINE in
 	*-musl)
 		configure_args+=' LIBS=-lobstack'
-		makedepends+=" musl-obstack"
+		makedepends+=" musl-obstack-devel"
 		;;
 esac
 

From fa7af81d9721f05d057a71c6651e65b8792d363f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:23 -0300
Subject: [PATCH 7/9] elfutils: use musl-obstack-devel.

---
 srcpkgs/elfutils/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/elfutils/template b/srcpkgs/elfutils/template
index ed40864be48..4a0f4c757ce 100644
--- a/srcpkgs/elfutils/template
+++ b/srcpkgs/elfutils/template
@@ -16,7 +16,7 @@ checksum=b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d
 CFLAGS="-Wno-error -Wno-error=null-dereference"
 
 case "$XBPS_TARGET_MACHINE" in
-	*-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack" ;;
+	*-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack-devel" ;;
 esac
 
 if [ "$CROSS_BUILD" ]; then

From 94d17b041b9995406cfc3ce8899d0dccf9fac835 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:46 -0300
Subject: [PATCH 8/9] cronie: use musl-obstack-devel.

---
 srcpkgs/cronie/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/cronie/template b/srcpkgs/cronie/template
index cd00937e7f5..e3486b38f9b 100644
--- a/srcpkgs/cronie/template
+++ b/srcpkgs/cronie/template
@@ -34,7 +34,7 @@ alternatives="
 "
 
 if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
-	makedepends+=" musl-obstack"
+	makedepends+=" musl-obstack-devel"
 fi
 
 pre_configure() {

From 903120e238e859ee8693456ae8a3bee2319ec8c2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:34 -0300
Subject: [PATCH 9/9] spotify: enable musl support.

Requires gcompat and patchelf, follows instructions from
https://catfox.life/2020/07/06/live-from-adelie-streaming-spotify-on-musl/
---
 srcpkgs/spotify/INSTALL  | 18 ++++++++++++++++--
 srcpkgs/spotify/template |  8 +++++++-
 2 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/spotify/INSTALL b/srcpkgs/spotify/INSTALL
index 1cf70985dcb..6d557133403 100644
--- a/srcpkgs/spotify/INSTALL
+++ b/srcpkgs/spotify/INSTALL
@@ -1,7 +1,7 @@
 # INSTALL for 'spotify'
 # Fetching proprietary binaries at install-time
 
-_BUILDDIR="/tmp/spotify.build"
+_BUILDDIR="$(mktemp -d /tmp/spotify.build.XXXXX)"
 _LIBS=$(ldconfig -vNX -n usr/lib 2>/dev/null)
 
 linklib() {
@@ -10,8 +10,8 @@ linklib() {
 }
 
 if test "$ACTION" = "post"; then
+	# get checksum and version information
 	. usr/share/spotify/pkgdata
-	mkdir -p "$_BUILDDIR"
 	(
 		set -e
 		cd "$_BUILDDIR"
@@ -27,15 +27,29 @@ if test "$ACTION" = "post"; then
 		exit 1;
 	fi
 
+	# delete old package version
 	[ -d "/usr/share/spotify/spotify-client" ] && rm -rf usr/share/spotify/spotify-client
+
+	# copy data
 	mv -f "${_BUILDDIR}/usr/share/spotify" usr/share/spotify/spotify-client
 	for _s in 16 22 24 32 48 64 128 256 512; do
 		mkdir -p "/usr/share/icons/hicolor/${_s}x${_s}/apps"
 		ln -sf "/usr/share/spotify/spotify-client/icons/spotify-linux-${_s}.png" "/usr/share/icons/hicolor/${_s}x${_s}/apps/spotify-client.png"
 	done
+
 	mkdir -p usr/share/applications
 	ln -sf /usr/share/spotify/spotify-client/spotify.desktop usr/share/applications/spotify.desktop
+
+	# https://catfox.life/2020/07/06/live-from-adelie-streaming-spotify-on-musl/
+	if [ "$(xbps-uhelper arch)" = "x86_64-musl" ]; then
+		for _l in libm.so.6 libdl.so.2; do
+			patchelf --remove-needed "${_l}" usr/share/spotify/spotify-client/spotify
+		done
+	fi
+
 	linklib "libssl" "1.0.0"
 	linklib "libcrypto" "1.0.0"
+
+	# cleanup
 	rm -r "$_BUILDDIR"
 fi
diff --git a/srcpkgs/spotify/template b/srcpkgs/spotify/template
index d9ec603bf6a..9942f8b9f47 100644
--- a/srcpkgs/spotify/template
+++ b/srcpkgs/spotify/template
@@ -2,7 +2,7 @@
 pkgname=spotify
 version=1.1.26
 revision=1
-archs="x86_64"
+archs="x86_64*"
 create_wrksrc=yes
 build_style=fetch
 depends="binutils gtk+ nss GConf libXScrnSaver libatomic"
@@ -13,6 +13,12 @@ homepage="https://www.spotify.com"
 repository=nonfree
 _sversion=".501.gbe11e53b-15_amd64"
 _schecksum="54ba1bd91020913273c469591cedeebfa34aedc250033dde7c8b3fded94a9c71"
+
+if [ "$XBPS_TARGET_LIBC" = musl ]; then
+	# musl requires compat library and modifying the binary
+	depends+=" gcompat>=0.9.0 patchelf"
+fi
+
 do_install() {
 	vbin ${FILESDIR}/spotify
 	vmkdir usr/share/spotify

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
  2020-07-06 23:54 ` [RFC][WIP] " ericonr
  2020-07-07  4:59 ` [PR PATCH] [Updated] " ericonr
@ 2020-07-07 20:48 ` kqo
  2020-07-07 20:52 ` ericonr
                   ` (19 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: kqo @ 2020-07-07 20:48 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 360 bytes --]

New comment by kqo on void-packages repository

https://github.com/void-linux/void-packages/pull/23432#issuecomment-655125084

Comment:
This fixes my issue (#22616) perfectly, thank you so much! :tada: 

I had to create a musl-obstack-devel symlink for it to build. Looks like the CI is having the same issue with finding the musl-obstack-devel package too.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
                   ` (2 preceding siblings ...)
  2020-07-07 20:48 ` kqo
@ 2020-07-07 20:52 ` ericonr
  2020-07-07 20:52 ` [PR PATCH] [Updated] " ericonr
                   ` (18 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-07 20:52 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 186 bytes --]

New comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/23432#issuecomment-655127398

Comment:
Oof, I think I forgot to commit that. Thanks!

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR PATCH] [Updated] [RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
                   ` (3 preceding siblings ...)
  2020-07-07 20:52 ` ericonr
@ 2020-07-07 20:52 ` ericonr
  2020-07-07 20:53 ` ericonr
                   ` (17 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-07 20:52 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 1150 bytes --]

There is an updated pull request by ericonr against master on the void-packages repository

https://github.com/ericonr/void-packages gcompat
https://github.com/void-linux/void-packages/pull/23432

[RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
Okay, so this is a biggie PR, and I do need help for making some decisions.

- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet. If I can't get it working soon, I will leave the spotify commit out of this one.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `__strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?

A patch file from https://github.com/void-linux/void-packages/pull/23432.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcompat-23432.patch --]
[-- Type: text/x-diff, Size: 13958 bytes --]

From d0bf8ffa0a478770774afd0e9eda02b756b7f56e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:26:32 -0300
Subject: [PATCH 1/9] musl-obstack: ship dynamic lib, split devel.

---
 common/shlibs                 |  1 +
 srcpkgs/musl-obstack-devel    |  1 +
 srcpkgs/musl-obstack/template | 16 +++++++++++++---
 3 files changed, 15 insertions(+), 3 deletions(-)
 create mode 120000 srcpkgs/musl-obstack-devel

diff --git a/common/shlibs b/common/shlibs
index 878ca5a5ac6..77242f9c58c 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3980,3 +3980,4 @@ libselinux.so.1 libselinux-3.0_1
 libsepol.so.1 libsepol-3.0_1
 libfrrcares.so.0 libfrr-7.3.1_1
 libhugetlbfs.so.0 libhugetlbfs-2.22_1
+libobstack.so.0 musl-obstack-1.1_4
diff --git a/srcpkgs/musl-obstack-devel b/srcpkgs/musl-obstack-devel
new file mode 120000
index 00000000000..e21ca66cded
--- /dev/null
+++ b/srcpkgs/musl-obstack-devel
@@ -0,0 +1 @@
+musl-obstack
\ No newline at end of file
diff --git a/srcpkgs/musl-obstack/template b/srcpkgs/musl-obstack/template
index 2cd2ddf2efc..4e8bee6afec 100644
--- a/srcpkgs/musl-obstack/template
+++ b/srcpkgs/musl-obstack/template
@@ -1,16 +1,15 @@
 # Template file for 'musl-obstack'
 pkgname=musl-obstack
 version=1.1
-revision=3
+revision=4
 archs="*-musl"
 build_style=gnu-configure
-configure_args="--disable-shared"
 hostmakedepends="automake libtool"
 short_desc="Implementation of obstack for musl libc"
 maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
 license="GPL-2.0-or-later"
 homepage="https://github.com/void-linux/musl-obstack"
-distfiles="https://github.com/void-linux/${pkgname}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
+distfiles="${homepage}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
 checksum=52a216613e7d55e8725e43d017bb2d49a4b1ffa1e06da472f03c7f9875df7d0d
 
 CFLAGS="-fPIC"
@@ -22,3 +21,14 @@ pre_configure() {
 post_install() {
 	vinstall ${pkgname}.pc 644 usr/lib/pkgconfig
 }
+
+musl-obstack-devel_package() {
+	depends="${sourcepkg}-${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/libobstack.a
+		vmove usr/lib/libobstack.so
+		vmove usr/lib/pkgconfig
+	}
+}

From 88d9bb6014cbbd2204162199286191f08faf1134 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:20 -0300
Subject: [PATCH 2/9] gcompat: update to 0.9.0.

Add musl-obstack dependency.
---
 .../gcompat/patches/ppc-libc_start_main.patch | 67 -------------------
 srcpkgs/gcompat/template                      | 10 +--
 2 files changed, 6 insertions(+), 71 deletions(-)
 delete mode 100644 srcpkgs/gcompat/patches/ppc-libc_start_main.patch

diff --git a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch b/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
deleted file mode 100644
index 518292745f7..00000000000
--- a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d30e49d10cefeb2748373127e1d1aba1184f653d Mon Sep 17 00:00:00 2001
-From: q66 <daniel@octaforge.org>
-Date: Sun, 10 Nov 2019 15:32:28 +0100
-Subject: [PATCH 1/1] internal: add a wrapper for __libc_start_main for
- PowerPC(64(le))
-
-This is necessary because the musl and glibc function signatures
-differ significantly.
----
- libgcompat/internal.c | 41 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 41 insertions(+)
-
-diff --git a/libgcompat/internal.c b/libgcompat/internal.c
-index 450c5e4..53ac429 100644
---- libgcompat/internal.c
-+++ libgcompat/internal.c
-@@ -2,6 +2,47 @@
- #include <stdio.h>
- #include <stdlib.h>
- 
-+#if defined(__powerpc__)
-+
-+/* On PowerPC as well as ppc64, we need to fix up __libc_start_main as the
-+ * glibc and musl versions have wildly different signatures, which would
-+ * result in the arguments to __libc_start_main being completely wrong.
-+ *
-+ * Using dlsym in this context is mildly questionable as this is before
-+ * the full initialization has been done, but there is no better way.
-+ */
-+
-+#include <dlfcn.h>
-+
-+struct startup_info {
-+	void *sda_base;
-+	void *f_main;
-+	void *f_init;
-+	void *f_fini;
-+};
-+
-+typedef int (*start_main_t)(void *mf, int argc, char **argv);
-+
-+/*
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/crt/crt1.c?id=90251cf
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/src/env/__libc_start_main.c?id=90251cf#n71
-+ * ref: https://github.com/bminor/glibc/blob/5cb226d/sysdeps/unix/sysv/linux/powerpc/libc-start.c#L36
-+ */
-+int __libc_start_main(void *argc, void *argv, void *ev, void *auxv, void *fini,
-+                      struct startup_info *si, long *p)
-+{
-+	(void)argc;
-+	(void)argv;
-+	(void)ev;
-+	(void)auxv;
-+	(void)fini;
-+	/* argc/argv from the stack, main from startup_info */
-+	start_main_t mainf = (start_main_t)dlsym(RTLD_NEXT, "__libc_start_main");
-+	return mainf(si->f_main, *p, (void *)(p + 1));
-+}
-+
-+#endif /* defined(__powerpc__) */
-+
- void GCOMPAT__panic(const char *fmt, ...)
- {
- 	va_list va;
--- 
-2.23.0
-
diff --git a/srcpkgs/gcompat/template b/srcpkgs/gcompat/template
index 237f97bd5e9..b2c1e9f8230 100644
--- a/srcpkgs/gcompat/template
+++ b/srcpkgs/gcompat/template
@@ -1,14 +1,16 @@
 # Template file for 'gcompat'
 pkgname=gcompat
-version=0.4.0
+version=0.9.0
 revision=1
 build_style=gnu-makefile
+hostmakedepends="pkg-config"
+makedepends="musl-obstack-devel"
 short_desc="Compatibility layer to allow running glibc binaries on musl systems"
 maintainer="Daniel James <djames@orcadian.net>"
 license="ISC"
 homepage="https://code.foxkit.us/adelie/gcompat"
 distfiles="https://distfiles.AdelieLinux.org/source/${pkgname}/${pkgname}-${version}.tar.xz"
-checksum=9903fac7b70de3ba7736ae2987fa00bbafff7bfcf6a9c88731c292dff19e44e2
+checksum=4555d045d7d2831d11b907719005c5dfbc77642c32f8c0172d40883026ffaf53
 
 build_options="libucontext"
 desc_option_libucontext="Build with ucontext support via libucontext"
@@ -43,10 +45,10 @@ esac
 
 make_build_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
  LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
 make_install_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
  LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
 
 if [ "$build_option_libucontext" ]; then
 	makedepends+=" libucontext-devel"

From 4711ced7b5e49980fd843234050d2c7dc02f1913 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:12 -0300
Subject: [PATCH 3/9] reiserfsprogs: use musl-obstack-devel.

---
 srcpkgs/reiserfsprogs/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/reiserfsprogs/template b/srcpkgs/reiserfsprogs/template
index 121b03a95a4..0df0b6261a6 100644
--- a/srcpkgs/reiserfsprogs/template
+++ b/srcpkgs/reiserfsprogs/template
@@ -14,7 +14,7 @@ checksum=0e95b67fa7746a3c2d59145e9b9c2feb4a6be52853e83b497b182eae508e62e3
 
 case "$XBPS_TARGET_MACHINE" in
 	*-musl)
-		makedepends+=" musl-obstack"
+		makedepends+=" musl-obstack-devel"
 		LDFLAGS="-lobstack"
 	;;
 esac

From 45994c6e5510f1bc0cef559cdc8c4f2465f91c8b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:40 -0300
Subject: [PATCH 4/9] perl-Proc-ProcessTable: use musl-obstack-devel.

---
 srcpkgs/perl-Proc-ProcessTable/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/perl-Proc-ProcessTable/template b/srcpkgs/perl-Proc-ProcessTable/template
index 58c07f2cb22..aad0248969d 100644
--- a/srcpkgs/perl-Proc-ProcessTable/template
+++ b/srcpkgs/perl-Proc-ProcessTable/template
@@ -15,5 +15,5 @@ distfiles="${CPAN_SITE}/Proc/Proc-ProcessTable-${version}.tar.gz"
 checksum=f8cc5054d78c35a0ce39fb75430b4ef402e2a99013d2ec37e7997f316594606c
 
 case "$XBPS_TARGET_MACHINE" in
-	*-musl) makedepends+=" musl-obstack" ;;
+	*-musl) makedepends+=" musl-obstack-devel" ;;
 esac

From 360eff7484eee9bee9df1ee564b8371b4feb0d45 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:00 -0300
Subject: [PATCH 5/9] pahole: use musl-obstack-devel.

---
 srcpkgs/pahole/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/pahole/template b/srcpkgs/pahole/template
index e504d3479f7..085eee87032 100644
--- a/srcpkgs/pahole/template
+++ b/srcpkgs/pahole/template
@@ -16,7 +16,7 @@ checksum="51e35041ce43ed08922037a1ee9e415aff1590e0d8d7cbe3e2b003f388db0a8a
  a616ba2ea72d00b4022689b17f4a78365379e3040d0f1a66d28eba52c528e480"
 
 case $XBPS_TARGET_MACHINE in
-	*-musl) makedepends+=" musl-obstack argp-standalone"
+	*-musl) makedepends+=" musl-obstack-devel argp-standalone"
 esac
 
 pre_patch() {

From 876e29bd12fa49c6a4982e4d5c8f0ca808a831f4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:12 -0300
Subject: [PATCH 6/9] hidrd: use musl-obstack-devel.

---
 srcpkgs/hidrd/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/hidrd/template b/srcpkgs/hidrd/template
index 1bb75b98a0c..c9aac4e7f0c 100644
--- a/srcpkgs/hidrd/template
+++ b/srcpkgs/hidrd/template
@@ -14,7 +14,7 @@ checksum=0147993dedb3066873d22fab1dc3aafec78d8c5783d168cccc43126f0fc3b307
 case $XBPS_TARGET_MACHINE in
 	*-musl)
 		configure_args+=' LIBS=-lobstack'
-		makedepends+=" musl-obstack"
+		makedepends+=" musl-obstack-devel"
 		;;
 esac
 

From a30b99abfb11b94359886ea794ef55a4c5ecedb0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:23 -0300
Subject: [PATCH 7/9] elfutils: use musl-obstack-devel.

---
 srcpkgs/elfutils/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/elfutils/template b/srcpkgs/elfutils/template
index ed40864be48..4a0f4c757ce 100644
--- a/srcpkgs/elfutils/template
+++ b/srcpkgs/elfutils/template
@@ -16,7 +16,7 @@ checksum=b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d
 CFLAGS="-Wno-error -Wno-error=null-dereference"
 
 case "$XBPS_TARGET_MACHINE" in
-	*-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack" ;;
+	*-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack-devel" ;;
 esac
 
 if [ "$CROSS_BUILD" ]; then

From e395feb30eea20f48899523bbe30f6514a94ca23 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:46 -0300
Subject: [PATCH 8/9] cronie: use musl-obstack-devel.

---
 srcpkgs/cronie/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/cronie/template b/srcpkgs/cronie/template
index cd00937e7f5..e3486b38f9b 100644
--- a/srcpkgs/cronie/template
+++ b/srcpkgs/cronie/template
@@ -34,7 +34,7 @@ alternatives="
 "
 
 if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
-	makedepends+=" musl-obstack"
+	makedepends+=" musl-obstack-devel"
 fi
 
 pre_configure() {

From 3a942cf1e97aced52f38f59a8b64750baa2b5932 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:34 -0300
Subject: [PATCH 9/9] spotify: enable musl support.

Requires gcompat and patchelf, follows instructions from
https://catfox.life/2020/07/06/live-from-adelie-streaming-spotify-on-musl/
---
 srcpkgs/spotify/INSTALL  | 18 ++++++++++++++++--
 srcpkgs/spotify/template |  8 +++++++-
 2 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/spotify/INSTALL b/srcpkgs/spotify/INSTALL
index 1cf70985dcb..6d557133403 100644
--- a/srcpkgs/spotify/INSTALL
+++ b/srcpkgs/spotify/INSTALL
@@ -1,7 +1,7 @@
 # INSTALL for 'spotify'
 # Fetching proprietary binaries at install-time
 
-_BUILDDIR="/tmp/spotify.build"
+_BUILDDIR="$(mktemp -d /tmp/spotify.build.XXXXX)"
 _LIBS=$(ldconfig -vNX -n usr/lib 2>/dev/null)
 
 linklib() {
@@ -10,8 +10,8 @@ linklib() {
 }
 
 if test "$ACTION" = "post"; then
+	# get checksum and version information
 	. usr/share/spotify/pkgdata
-	mkdir -p "$_BUILDDIR"
 	(
 		set -e
 		cd "$_BUILDDIR"
@@ -27,15 +27,29 @@ if test "$ACTION" = "post"; then
 		exit 1;
 	fi
 
+	# delete old package version
 	[ -d "/usr/share/spotify/spotify-client" ] && rm -rf usr/share/spotify/spotify-client
+
+	# copy data
 	mv -f "${_BUILDDIR}/usr/share/spotify" usr/share/spotify/spotify-client
 	for _s in 16 22 24 32 48 64 128 256 512; do
 		mkdir -p "/usr/share/icons/hicolor/${_s}x${_s}/apps"
 		ln -sf "/usr/share/spotify/spotify-client/icons/spotify-linux-${_s}.png" "/usr/share/icons/hicolor/${_s}x${_s}/apps/spotify-client.png"
 	done
+
 	mkdir -p usr/share/applications
 	ln -sf /usr/share/spotify/spotify-client/spotify.desktop usr/share/applications/spotify.desktop
+
+	# https://catfox.life/2020/07/06/live-from-adelie-streaming-spotify-on-musl/
+	if [ "$(xbps-uhelper arch)" = "x86_64-musl" ]; then
+		for _l in libm.so.6 libdl.so.2; do
+			patchelf --remove-needed "${_l}" usr/share/spotify/spotify-client/spotify
+		done
+	fi
+
 	linklib "libssl" "1.0.0"
 	linklib "libcrypto" "1.0.0"
+
+	# cleanup
 	rm -r "$_BUILDDIR"
 fi
diff --git a/srcpkgs/spotify/template b/srcpkgs/spotify/template
index d9ec603bf6a..9942f8b9f47 100644
--- a/srcpkgs/spotify/template
+++ b/srcpkgs/spotify/template
@@ -2,7 +2,7 @@
 pkgname=spotify
 version=1.1.26
 revision=1
-archs="x86_64"
+archs="x86_64*"
 create_wrksrc=yes
 build_style=fetch
 depends="binutils gtk+ nss GConf libXScrnSaver libatomic"
@@ -13,6 +13,12 @@ homepage="https://www.spotify.com"
 repository=nonfree
 _sversion=".501.gbe11e53b-15_amd64"
 _schecksum="54ba1bd91020913273c469591cedeebfa34aedc250033dde7c8b3fded94a9c71"
+
+if [ "$XBPS_TARGET_LIBC" = musl ]; then
+	# musl requires compat library and modifying the binary
+	depends+=" gcompat>=0.9.0 patchelf"
+fi
+
 do_install() {
 	vbin ${FILESDIR}/spotify
 	vmkdir usr/share/spotify

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR PATCH] [Updated] [RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
                   ` (4 preceding siblings ...)
  2020-07-07 20:52 ` [PR PATCH] [Updated] " ericonr
@ 2020-07-07 20:53 ` ericonr
  2020-07-09  2:50 ` ericonr
                   ` (16 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-07 20:53 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 1150 bytes --]

There is an updated pull request by ericonr against master on the void-packages repository

https://github.com/ericonr/void-packages gcompat
https://github.com/void-linux/void-packages/pull/23432

[RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
Okay, so this is a biggie PR, and I do need help for making some decisions.

- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet. If I can't get it working soon, I will leave the spotify commit out of this one.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `__strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?

A patch file from https://github.com/void-linux/void-packages/pull/23432.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcompat-23432.patch --]
[-- Type: text/x-diff, Size: 13970 bytes --]

From 7d87d050261f5a07268ea772e02b3e0c87c1b02a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:26:32 -0300
Subject: [PATCH 1/9] musl-obstack: ship dynamic lib, split devel.

---
 common/shlibs                 |  1 +
 srcpkgs/musl-obstack-devel    |  1 +
 srcpkgs/musl-obstack/template | 16 +++++++++++++---
 3 files changed, 15 insertions(+), 3 deletions(-)
 create mode 120000 srcpkgs/musl-obstack-devel

diff --git a/common/shlibs b/common/shlibs
index 86ee9fcb734..31272a3530a 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3978,3 +3978,4 @@ libsepol.so.1 libsepol-3.0_1
 libfrrcares.so.0 libfrr-7.3.1_1
 libhugetlbfs.so.0 libhugetlbfs-2.22_1
 libdolphinvcs.so.5 dolphin-plugins-20.04.2_1
+libobstack.so.0 musl-obstack-1.1_4
diff --git a/srcpkgs/musl-obstack-devel b/srcpkgs/musl-obstack-devel
new file mode 120000
index 00000000000..e21ca66cded
--- /dev/null
+++ b/srcpkgs/musl-obstack-devel
@@ -0,0 +1 @@
+musl-obstack
\ No newline at end of file
diff --git a/srcpkgs/musl-obstack/template b/srcpkgs/musl-obstack/template
index 2cd2ddf2efc..4e8bee6afec 100644
--- a/srcpkgs/musl-obstack/template
+++ b/srcpkgs/musl-obstack/template
@@ -1,16 +1,15 @@
 # Template file for 'musl-obstack'
 pkgname=musl-obstack
 version=1.1
-revision=3
+revision=4
 archs="*-musl"
 build_style=gnu-configure
-configure_args="--disable-shared"
 hostmakedepends="automake libtool"
 short_desc="Implementation of obstack for musl libc"
 maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
 license="GPL-2.0-or-later"
 homepage="https://github.com/void-linux/musl-obstack"
-distfiles="https://github.com/void-linux/${pkgname}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
+distfiles="${homepage}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
 checksum=52a216613e7d55e8725e43d017bb2d49a4b1ffa1e06da472f03c7f9875df7d0d
 
 CFLAGS="-fPIC"
@@ -22,3 +21,14 @@ pre_configure() {
 post_install() {
 	vinstall ${pkgname}.pc 644 usr/lib/pkgconfig
 }
+
+musl-obstack-devel_package() {
+	depends="${sourcepkg}-${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/libobstack.a
+		vmove usr/lib/libobstack.so
+		vmove usr/lib/pkgconfig
+	}
+}

From ec078c020cc9d9ae8b3ede04d2a0a389e4b0a2a8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:20 -0300
Subject: [PATCH 2/9] gcompat: update to 0.9.0.

Add musl-obstack dependency.
---
 .../gcompat/patches/ppc-libc_start_main.patch | 67 -------------------
 srcpkgs/gcompat/template                      | 10 +--
 2 files changed, 6 insertions(+), 71 deletions(-)
 delete mode 100644 srcpkgs/gcompat/patches/ppc-libc_start_main.patch

diff --git a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch b/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
deleted file mode 100644
index 518292745f7..00000000000
--- a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d30e49d10cefeb2748373127e1d1aba1184f653d Mon Sep 17 00:00:00 2001
-From: q66 <daniel@octaforge.org>
-Date: Sun, 10 Nov 2019 15:32:28 +0100
-Subject: [PATCH 1/1] internal: add a wrapper for __libc_start_main for
- PowerPC(64(le))
-
-This is necessary because the musl and glibc function signatures
-differ significantly.
----
- libgcompat/internal.c | 41 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 41 insertions(+)
-
-diff --git a/libgcompat/internal.c b/libgcompat/internal.c
-index 450c5e4..53ac429 100644
---- libgcompat/internal.c
-+++ libgcompat/internal.c
-@@ -2,6 +2,47 @@
- #include <stdio.h>
- #include <stdlib.h>
- 
-+#if defined(__powerpc__)
-+
-+/* On PowerPC as well as ppc64, we need to fix up __libc_start_main as the
-+ * glibc and musl versions have wildly different signatures, which would
-+ * result in the arguments to __libc_start_main being completely wrong.
-+ *
-+ * Using dlsym in this context is mildly questionable as this is before
-+ * the full initialization has been done, but there is no better way.
-+ */
-+
-+#include <dlfcn.h>
-+
-+struct startup_info {
-+	void *sda_base;
-+	void *f_main;
-+	void *f_init;
-+	void *f_fini;
-+};
-+
-+typedef int (*start_main_t)(void *mf, int argc, char **argv);
-+
-+/*
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/crt/crt1.c?id=90251cf
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/src/env/__libc_start_main.c?id=90251cf#n71
-+ * ref: https://github.com/bminor/glibc/blob/5cb226d/sysdeps/unix/sysv/linux/powerpc/libc-start.c#L36
-+ */
-+int __libc_start_main(void *argc, void *argv, void *ev, void *auxv, void *fini,
-+                      struct startup_info *si, long *p)
-+{
-+	(void)argc;
-+	(void)argv;
-+	(void)ev;
-+	(void)auxv;
-+	(void)fini;
-+	/* argc/argv from the stack, main from startup_info */
-+	start_main_t mainf = (start_main_t)dlsym(RTLD_NEXT, "__libc_start_main");
-+	return mainf(si->f_main, *p, (void *)(p + 1));
-+}
-+
-+#endif /* defined(__powerpc__) */
-+
- void GCOMPAT__panic(const char *fmt, ...)
- {
- 	va_list va;
--- 
-2.23.0
-
diff --git a/srcpkgs/gcompat/template b/srcpkgs/gcompat/template
index 237f97bd5e9..b2c1e9f8230 100644
--- a/srcpkgs/gcompat/template
+++ b/srcpkgs/gcompat/template
@@ -1,14 +1,16 @@
 # Template file for 'gcompat'
 pkgname=gcompat
-version=0.4.0
+version=0.9.0
 revision=1
 build_style=gnu-makefile
+hostmakedepends="pkg-config"
+makedepends="musl-obstack-devel"
 short_desc="Compatibility layer to allow running glibc binaries on musl systems"
 maintainer="Daniel James <djames@orcadian.net>"
 license="ISC"
 homepage="https://code.foxkit.us/adelie/gcompat"
 distfiles="https://distfiles.AdelieLinux.org/source/${pkgname}/${pkgname}-${version}.tar.xz"
-checksum=9903fac7b70de3ba7736ae2987fa00bbafff7bfcf6a9c88731c292dff19e44e2
+checksum=4555d045d7d2831d11b907719005c5dfbc77642c32f8c0172d40883026ffaf53
 
 build_options="libucontext"
 desc_option_libucontext="Build with ucontext support via libucontext"
@@ -43,10 +45,10 @@ esac
 
 make_build_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
  LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
 make_install_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
  LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
 
 if [ "$build_option_libucontext" ]; then
 	makedepends+=" libucontext-devel"

From b53212b3249a08b7c3035b7b0ddd03858247357c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:12 -0300
Subject: [PATCH 3/9] reiserfsprogs: use musl-obstack-devel.

---
 srcpkgs/reiserfsprogs/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/reiserfsprogs/template b/srcpkgs/reiserfsprogs/template
index 121b03a95a4..0df0b6261a6 100644
--- a/srcpkgs/reiserfsprogs/template
+++ b/srcpkgs/reiserfsprogs/template
@@ -14,7 +14,7 @@ checksum=0e95b67fa7746a3c2d59145e9b9c2feb4a6be52853e83b497b182eae508e62e3
 
 case "$XBPS_TARGET_MACHINE" in
 	*-musl)
-		makedepends+=" musl-obstack"
+		makedepends+=" musl-obstack-devel"
 		LDFLAGS="-lobstack"
 	;;
 esac

From 36517edbfcb932beddf97fa6e6e408cfbae77b15 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:40 -0300
Subject: [PATCH 4/9] perl-Proc-ProcessTable: use musl-obstack-devel.

---
 srcpkgs/perl-Proc-ProcessTable/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/perl-Proc-ProcessTable/template b/srcpkgs/perl-Proc-ProcessTable/template
index 58c07f2cb22..aad0248969d 100644
--- a/srcpkgs/perl-Proc-ProcessTable/template
+++ b/srcpkgs/perl-Proc-ProcessTable/template
@@ -15,5 +15,5 @@ distfiles="${CPAN_SITE}/Proc/Proc-ProcessTable-${version}.tar.gz"
 checksum=f8cc5054d78c35a0ce39fb75430b4ef402e2a99013d2ec37e7997f316594606c
 
 case "$XBPS_TARGET_MACHINE" in
-	*-musl) makedepends+=" musl-obstack" ;;
+	*-musl) makedepends+=" musl-obstack-devel" ;;
 esac

From 6fb9945d2800228506285d7f0f5ab841c4d3ebea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:00 -0300
Subject: [PATCH 5/9] pahole: use musl-obstack-devel.

---
 srcpkgs/pahole/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/pahole/template b/srcpkgs/pahole/template
index e504d3479f7..085eee87032 100644
--- a/srcpkgs/pahole/template
+++ b/srcpkgs/pahole/template
@@ -16,7 +16,7 @@ checksum="51e35041ce43ed08922037a1ee9e415aff1590e0d8d7cbe3e2b003f388db0a8a
  a616ba2ea72d00b4022689b17f4a78365379e3040d0f1a66d28eba52c528e480"
 
 case $XBPS_TARGET_MACHINE in
-	*-musl) makedepends+=" musl-obstack argp-standalone"
+	*-musl) makedepends+=" musl-obstack-devel argp-standalone"
 esac
 
 pre_patch() {

From 2defe97c6b1681f96083dde87d849e04cca951b2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:12 -0300
Subject: [PATCH 6/9] hidrd: use musl-obstack-devel.

---
 srcpkgs/hidrd/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/hidrd/template b/srcpkgs/hidrd/template
index 1bb75b98a0c..c9aac4e7f0c 100644
--- a/srcpkgs/hidrd/template
+++ b/srcpkgs/hidrd/template
@@ -14,7 +14,7 @@ checksum=0147993dedb3066873d22fab1dc3aafec78d8c5783d168cccc43126f0fc3b307
 case $XBPS_TARGET_MACHINE in
 	*-musl)
 		configure_args+=' LIBS=-lobstack'
-		makedepends+=" musl-obstack"
+		makedepends+=" musl-obstack-devel"
 		;;
 esac
 

From 1c95ea7ec47b0a0dc8feef0995cb7039bac48128 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:23 -0300
Subject: [PATCH 7/9] elfutils: use musl-obstack-devel.

---
 srcpkgs/elfutils/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/elfutils/template b/srcpkgs/elfutils/template
index ed40864be48..4a0f4c757ce 100644
--- a/srcpkgs/elfutils/template
+++ b/srcpkgs/elfutils/template
@@ -16,7 +16,7 @@ checksum=b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d
 CFLAGS="-Wno-error -Wno-error=null-dereference"
 
 case "$XBPS_TARGET_MACHINE" in
-	*-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack" ;;
+	*-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack-devel" ;;
 esac
 
 if [ "$CROSS_BUILD" ]; then

From 19f9960d5f4e2415d2b90daf046a88b0d401b69f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:46 -0300
Subject: [PATCH 8/9] cronie: use musl-obstack-devel.

---
 srcpkgs/cronie/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/cronie/template b/srcpkgs/cronie/template
index cd00937e7f5..e3486b38f9b 100644
--- a/srcpkgs/cronie/template
+++ b/srcpkgs/cronie/template
@@ -34,7 +34,7 @@ alternatives="
 "
 
 if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
-	makedepends+=" musl-obstack"
+	makedepends+=" musl-obstack-devel"
 fi
 
 pre_configure() {

From 9653f5af82219afa320c890419a839a7d35e0414 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:34 -0300
Subject: [PATCH 9/9] spotify: enable musl support.

Requires gcompat and patchelf, follows instructions from
https://catfox.life/2020/07/06/live-from-adelie-streaming-spotify-on-musl/
---
 srcpkgs/spotify/INSTALL  | 18 ++++++++++++++++--
 srcpkgs/spotify/template |  8 +++++++-
 2 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/spotify/INSTALL b/srcpkgs/spotify/INSTALL
index 1cf70985dcb..6d557133403 100644
--- a/srcpkgs/spotify/INSTALL
+++ b/srcpkgs/spotify/INSTALL
@@ -1,7 +1,7 @@
 # INSTALL for 'spotify'
 # Fetching proprietary binaries at install-time
 
-_BUILDDIR="/tmp/spotify.build"
+_BUILDDIR="$(mktemp -d /tmp/spotify.build.XXXXX)"
 _LIBS=$(ldconfig -vNX -n usr/lib 2>/dev/null)
 
 linklib() {
@@ -10,8 +10,8 @@ linklib() {
 }
 
 if test "$ACTION" = "post"; then
+	# get checksum and version information
 	. usr/share/spotify/pkgdata
-	mkdir -p "$_BUILDDIR"
 	(
 		set -e
 		cd "$_BUILDDIR"
@@ -27,15 +27,29 @@ if test "$ACTION" = "post"; then
 		exit 1;
 	fi
 
+	# delete old package version
 	[ -d "/usr/share/spotify/spotify-client" ] && rm -rf usr/share/spotify/spotify-client
+
+	# copy data
 	mv -f "${_BUILDDIR}/usr/share/spotify" usr/share/spotify/spotify-client
 	for _s in 16 22 24 32 48 64 128 256 512; do
 		mkdir -p "/usr/share/icons/hicolor/${_s}x${_s}/apps"
 		ln -sf "/usr/share/spotify/spotify-client/icons/spotify-linux-${_s}.png" "/usr/share/icons/hicolor/${_s}x${_s}/apps/spotify-client.png"
 	done
+
 	mkdir -p usr/share/applications
 	ln -sf /usr/share/spotify/spotify-client/spotify.desktop usr/share/applications/spotify.desktop
+
+	# https://catfox.life/2020/07/06/live-from-adelie-streaming-spotify-on-musl/
+	if [ "$(xbps-uhelper arch)" = "x86_64-musl" ]; then
+		for _l in libm.so.6 libdl.so.2; do
+			patchelf --remove-needed "${_l}" usr/share/spotify/spotify-client/spotify
+		done
+	fi
+
 	linklib "libssl" "1.0.0"
 	linklib "libcrypto" "1.0.0"
+
+	# cleanup
 	rm -r "$_BUILDDIR"
 fi
diff --git a/srcpkgs/spotify/template b/srcpkgs/spotify/template
index d9ec603bf6a..9942f8b9f47 100644
--- a/srcpkgs/spotify/template
+++ b/srcpkgs/spotify/template
@@ -2,7 +2,7 @@
 pkgname=spotify
 version=1.1.26
 revision=1
-archs="x86_64"
+archs="x86_64*"
 create_wrksrc=yes
 build_style=fetch
 depends="binutils gtk+ nss GConf libXScrnSaver libatomic"
@@ -13,6 +13,12 @@ homepage="https://www.spotify.com"
 repository=nonfree
 _sversion=".501.gbe11e53b-15_amd64"
 _schecksum="54ba1bd91020913273c469591cedeebfa34aedc250033dde7c8b3fded94a9c71"
+
+if [ "$XBPS_TARGET_LIBC" = musl ]; then
+	# musl requires compat library and modifying the binary
+	depends+=" gcompat>=0.9.0 patchelf"
+fi
+
 do_install() {
 	vbin ${FILESDIR}/spotify
 	vmkdir usr/share/spotify

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR PATCH] [Updated] [RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
                   ` (5 preceding siblings ...)
  2020-07-07 20:53 ` ericonr
@ 2020-07-09  2:50 ` ericonr
  2020-07-09  8:59 ` ericonr
                   ` (15 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-09  2:50 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 1150 bytes --]

There is an updated pull request by ericonr against master on the void-packages repository

https://github.com/ericonr/void-packages gcompat
https://github.com/void-linux/void-packages/pull/23432

[RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
Okay, so this is a biggie PR, and I do need help for making some decisions.

- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet. If I can't get it working soon, I will leave the spotify commit out of this one.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `__strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?

A patch file from https://github.com/void-linux/void-packages/pull/23432.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcompat-23432.patch --]
[-- Type: text/x-diff, Size: 14117 bytes --]

From 7d87d050261f5a07268ea772e02b3e0c87c1b02a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:26:32 -0300
Subject: [PATCH 1/9] musl-obstack: ship dynamic lib, split devel.

---
 common/shlibs                 |  1 +
 srcpkgs/musl-obstack-devel    |  1 +
 srcpkgs/musl-obstack/template | 16 +++++++++++++---
 3 files changed, 15 insertions(+), 3 deletions(-)
 create mode 120000 srcpkgs/musl-obstack-devel

diff --git a/common/shlibs b/common/shlibs
index 86ee9fcb734..31272a3530a 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3978,3 +3978,4 @@ libsepol.so.1 libsepol-3.0_1
 libfrrcares.so.0 libfrr-7.3.1_1
 libhugetlbfs.so.0 libhugetlbfs-2.22_1
 libdolphinvcs.so.5 dolphin-plugins-20.04.2_1
+libobstack.so.0 musl-obstack-1.1_4
diff --git a/srcpkgs/musl-obstack-devel b/srcpkgs/musl-obstack-devel
new file mode 120000
index 00000000000..e21ca66cded
--- /dev/null
+++ b/srcpkgs/musl-obstack-devel
@@ -0,0 +1 @@
+musl-obstack
\ No newline at end of file
diff --git a/srcpkgs/musl-obstack/template b/srcpkgs/musl-obstack/template
index 2cd2ddf2efc..4e8bee6afec 100644
--- a/srcpkgs/musl-obstack/template
+++ b/srcpkgs/musl-obstack/template
@@ -1,16 +1,15 @@
 # Template file for 'musl-obstack'
 pkgname=musl-obstack
 version=1.1
-revision=3
+revision=4
 archs="*-musl"
 build_style=gnu-configure
-configure_args="--disable-shared"
 hostmakedepends="automake libtool"
 short_desc="Implementation of obstack for musl libc"
 maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
 license="GPL-2.0-or-later"
 homepage="https://github.com/void-linux/musl-obstack"
-distfiles="https://github.com/void-linux/${pkgname}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
+distfiles="${homepage}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
 checksum=52a216613e7d55e8725e43d017bb2d49a4b1ffa1e06da472f03c7f9875df7d0d
 
 CFLAGS="-fPIC"
@@ -22,3 +21,14 @@ pre_configure() {
 post_install() {
 	vinstall ${pkgname}.pc 644 usr/lib/pkgconfig
 }
+
+musl-obstack-devel_package() {
+	depends="${sourcepkg}-${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/libobstack.a
+		vmove usr/lib/libobstack.so
+		vmove usr/lib/pkgconfig
+	}
+}

From ec078c020cc9d9ae8b3ede04d2a0a389e4b0a2a8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:20 -0300
Subject: [PATCH 2/9] gcompat: update to 0.9.0.

Add musl-obstack dependency.
---
 .../gcompat/patches/ppc-libc_start_main.patch | 67 -------------------
 srcpkgs/gcompat/template                      | 10 +--
 2 files changed, 6 insertions(+), 71 deletions(-)
 delete mode 100644 srcpkgs/gcompat/patches/ppc-libc_start_main.patch

diff --git a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch b/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
deleted file mode 100644
index 518292745f7..00000000000
--- a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d30e49d10cefeb2748373127e1d1aba1184f653d Mon Sep 17 00:00:00 2001
-From: q66 <daniel@octaforge.org>
-Date: Sun, 10 Nov 2019 15:32:28 +0100
-Subject: [PATCH 1/1] internal: add a wrapper for __libc_start_main for
- PowerPC(64(le))
-
-This is necessary because the musl and glibc function signatures
-differ significantly.
----
- libgcompat/internal.c | 41 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 41 insertions(+)
-
-diff --git a/libgcompat/internal.c b/libgcompat/internal.c
-index 450c5e4..53ac429 100644
---- libgcompat/internal.c
-+++ libgcompat/internal.c
-@@ -2,6 +2,47 @@
- #include <stdio.h>
- #include <stdlib.h>
- 
-+#if defined(__powerpc__)
-+
-+/* On PowerPC as well as ppc64, we need to fix up __libc_start_main as the
-+ * glibc and musl versions have wildly different signatures, which would
-+ * result in the arguments to __libc_start_main being completely wrong.
-+ *
-+ * Using dlsym in this context is mildly questionable as this is before
-+ * the full initialization has been done, but there is no better way.
-+ */
-+
-+#include <dlfcn.h>
-+
-+struct startup_info {
-+	void *sda_base;
-+	void *f_main;
-+	void *f_init;
-+	void *f_fini;
-+};
-+
-+typedef int (*start_main_t)(void *mf, int argc, char **argv);
-+
-+/*
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/crt/crt1.c?id=90251cf
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/src/env/__libc_start_main.c?id=90251cf#n71
-+ * ref: https://github.com/bminor/glibc/blob/5cb226d/sysdeps/unix/sysv/linux/powerpc/libc-start.c#L36
-+ */
-+int __libc_start_main(void *argc, void *argv, void *ev, void *auxv, void *fini,
-+                      struct startup_info *si, long *p)
-+{
-+	(void)argc;
-+	(void)argv;
-+	(void)ev;
-+	(void)auxv;
-+	(void)fini;
-+	/* argc/argv from the stack, main from startup_info */
-+	start_main_t mainf = (start_main_t)dlsym(RTLD_NEXT, "__libc_start_main");
-+	return mainf(si->f_main, *p, (void *)(p + 1));
-+}
-+
-+#endif /* defined(__powerpc__) */
-+
- void GCOMPAT__panic(const char *fmt, ...)
- {
- 	va_list va;
--- 
-2.23.0
-
diff --git a/srcpkgs/gcompat/template b/srcpkgs/gcompat/template
index 237f97bd5e9..b2c1e9f8230 100644
--- a/srcpkgs/gcompat/template
+++ b/srcpkgs/gcompat/template
@@ -1,14 +1,16 @@
 # Template file for 'gcompat'
 pkgname=gcompat
-version=0.4.0
+version=0.9.0
 revision=1
 build_style=gnu-makefile
+hostmakedepends="pkg-config"
+makedepends="musl-obstack-devel"
 short_desc="Compatibility layer to allow running glibc binaries on musl systems"
 maintainer="Daniel James <djames@orcadian.net>"
 license="ISC"
 homepage="https://code.foxkit.us/adelie/gcompat"
 distfiles="https://distfiles.AdelieLinux.org/source/${pkgname}/${pkgname}-${version}.tar.xz"
-checksum=9903fac7b70de3ba7736ae2987fa00bbafff7bfcf6a9c88731c292dff19e44e2
+checksum=4555d045d7d2831d11b907719005c5dfbc77642c32f8c0172d40883026ffaf53
 
 build_options="libucontext"
 desc_option_libucontext="Build with ucontext support via libucontext"
@@ -43,10 +45,10 @@ esac
 
 make_build_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
  LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
 make_install_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
  LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
 
 if [ "$build_option_libucontext" ]; then
 	makedepends+=" libucontext-devel"

From b53212b3249a08b7c3035b7b0ddd03858247357c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:12 -0300
Subject: [PATCH 3/9] reiserfsprogs: use musl-obstack-devel.

---
 srcpkgs/reiserfsprogs/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/reiserfsprogs/template b/srcpkgs/reiserfsprogs/template
index 121b03a95a4..0df0b6261a6 100644
--- a/srcpkgs/reiserfsprogs/template
+++ b/srcpkgs/reiserfsprogs/template
@@ -14,7 +14,7 @@ checksum=0e95b67fa7746a3c2d59145e9b9c2feb4a6be52853e83b497b182eae508e62e3
 
 case "$XBPS_TARGET_MACHINE" in
 	*-musl)
-		makedepends+=" musl-obstack"
+		makedepends+=" musl-obstack-devel"
 		LDFLAGS="-lobstack"
 	;;
 esac

From 36517edbfcb932beddf97fa6e6e408cfbae77b15 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:40 -0300
Subject: [PATCH 4/9] perl-Proc-ProcessTable: use musl-obstack-devel.

---
 srcpkgs/perl-Proc-ProcessTable/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/perl-Proc-ProcessTable/template b/srcpkgs/perl-Proc-ProcessTable/template
index 58c07f2cb22..aad0248969d 100644
--- a/srcpkgs/perl-Proc-ProcessTable/template
+++ b/srcpkgs/perl-Proc-ProcessTable/template
@@ -15,5 +15,5 @@ distfiles="${CPAN_SITE}/Proc/Proc-ProcessTable-${version}.tar.gz"
 checksum=f8cc5054d78c35a0ce39fb75430b4ef402e2a99013d2ec37e7997f316594606c
 
 case "$XBPS_TARGET_MACHINE" in
-	*-musl) makedepends+=" musl-obstack" ;;
+	*-musl) makedepends+=" musl-obstack-devel" ;;
 esac

From 6fb9945d2800228506285d7f0f5ab841c4d3ebea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:00 -0300
Subject: [PATCH 5/9] pahole: use musl-obstack-devel.

---
 srcpkgs/pahole/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/pahole/template b/srcpkgs/pahole/template
index e504d3479f7..085eee87032 100644
--- a/srcpkgs/pahole/template
+++ b/srcpkgs/pahole/template
@@ -16,7 +16,7 @@ checksum="51e35041ce43ed08922037a1ee9e415aff1590e0d8d7cbe3e2b003f388db0a8a
  a616ba2ea72d00b4022689b17f4a78365379e3040d0f1a66d28eba52c528e480"
 
 case $XBPS_TARGET_MACHINE in
-	*-musl) makedepends+=" musl-obstack argp-standalone"
+	*-musl) makedepends+=" musl-obstack-devel argp-standalone"
 esac
 
 pre_patch() {

From 2defe97c6b1681f96083dde87d849e04cca951b2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:12 -0300
Subject: [PATCH 6/9] hidrd: use musl-obstack-devel.

---
 srcpkgs/hidrd/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/hidrd/template b/srcpkgs/hidrd/template
index 1bb75b98a0c..c9aac4e7f0c 100644
--- a/srcpkgs/hidrd/template
+++ b/srcpkgs/hidrd/template
@@ -14,7 +14,7 @@ checksum=0147993dedb3066873d22fab1dc3aafec78d8c5783d168cccc43126f0fc3b307
 case $XBPS_TARGET_MACHINE in
 	*-musl)
 		configure_args+=' LIBS=-lobstack'
-		makedepends+=" musl-obstack"
+		makedepends+=" musl-obstack-devel"
 		;;
 esac
 

From 1c95ea7ec47b0a0dc8feef0995cb7039bac48128 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:23 -0300
Subject: [PATCH 7/9] elfutils: use musl-obstack-devel.

---
 srcpkgs/elfutils/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/elfutils/template b/srcpkgs/elfutils/template
index ed40864be48..4a0f4c757ce 100644
--- a/srcpkgs/elfutils/template
+++ b/srcpkgs/elfutils/template
@@ -16,7 +16,7 @@ checksum=b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d
 CFLAGS="-Wno-error -Wno-error=null-dereference"
 
 case "$XBPS_TARGET_MACHINE" in
-	*-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack" ;;
+	*-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack-devel" ;;
 esac
 
 if [ "$CROSS_BUILD" ]; then

From 19f9960d5f4e2415d2b90daf046a88b0d401b69f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:46 -0300
Subject: [PATCH 8/9] cronie: use musl-obstack-devel.

---
 srcpkgs/cronie/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/cronie/template b/srcpkgs/cronie/template
index cd00937e7f5..e3486b38f9b 100644
--- a/srcpkgs/cronie/template
+++ b/srcpkgs/cronie/template
@@ -34,7 +34,7 @@ alternatives="
 "
 
 if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
-	makedepends+=" musl-obstack"
+	makedepends+=" musl-obstack-devel"
 fi
 
 pre_configure() {

From 6ebb9f24f905eb29d2a65676b4a964a40085a1d2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:34 -0300
Subject: [PATCH 9/9] spotify: enable musl support.

Requires gcompat and patchelf, follows instructions from
https://catfox.life/2020/07/06/live-from-adelie-streaming-spotify-on-musl/
---
 srcpkgs/spotify/INSTALL  | 18 ++++++++++++++++--
 srcpkgs/spotify/template | 10 ++++++++--
 2 files changed, 24 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/spotify/INSTALL b/srcpkgs/spotify/INSTALL
index 1cf70985dcb..6d557133403 100644
--- a/srcpkgs/spotify/INSTALL
+++ b/srcpkgs/spotify/INSTALL
@@ -1,7 +1,7 @@
 # INSTALL for 'spotify'
 # Fetching proprietary binaries at install-time
 
-_BUILDDIR="/tmp/spotify.build"
+_BUILDDIR="$(mktemp -d /tmp/spotify.build.XXXXX)"
 _LIBS=$(ldconfig -vNX -n usr/lib 2>/dev/null)
 
 linklib() {
@@ -10,8 +10,8 @@ linklib() {
 }
 
 if test "$ACTION" = "post"; then
+	# get checksum and version information
 	. usr/share/spotify/pkgdata
-	mkdir -p "$_BUILDDIR"
 	(
 		set -e
 		cd "$_BUILDDIR"
@@ -27,15 +27,29 @@ if test "$ACTION" = "post"; then
 		exit 1;
 	fi
 
+	# delete old package version
 	[ -d "/usr/share/spotify/spotify-client" ] && rm -rf usr/share/spotify/spotify-client
+
+	# copy data
 	mv -f "${_BUILDDIR}/usr/share/spotify" usr/share/spotify/spotify-client
 	for _s in 16 22 24 32 48 64 128 256 512; do
 		mkdir -p "/usr/share/icons/hicolor/${_s}x${_s}/apps"
 		ln -sf "/usr/share/spotify/spotify-client/icons/spotify-linux-${_s}.png" "/usr/share/icons/hicolor/${_s}x${_s}/apps/spotify-client.png"
 	done
+
 	mkdir -p usr/share/applications
 	ln -sf /usr/share/spotify/spotify-client/spotify.desktop usr/share/applications/spotify.desktop
+
+	# https://catfox.life/2020/07/06/live-from-adelie-streaming-spotify-on-musl/
+	if [ "$(xbps-uhelper arch)" = "x86_64-musl" ]; then
+		for _l in libm.so.6 libdl.so.2; do
+			patchelf --remove-needed "${_l}" usr/share/spotify/spotify-client/spotify
+		done
+	fi
+
 	linklib "libssl" "1.0.0"
 	linklib "libcrypto" "1.0.0"
+
+	# cleanup
 	rm -r "$_BUILDDIR"
 fi
diff --git a/srcpkgs/spotify/template b/srcpkgs/spotify/template
index d9ec603bf6a..5053a7224b2 100644
--- a/srcpkgs/spotify/template
+++ b/srcpkgs/spotify/template
@@ -2,17 +2,23 @@
 pkgname=spotify
 version=1.1.26
 revision=1
-archs="x86_64"
+archs="x86_64*"
 create_wrksrc=yes
 build_style=fetch
 depends="binutils gtk+ nss GConf libXScrnSaver libatomic"
 short_desc="Proprietary music streaming client"
 maintainer="Stefan Mühlinghaus <jazzman@alphabreed.com>"
-license="Proprietary"
+license="custom:Proprietary"
 homepage="https://www.spotify.com"
 repository=nonfree
 _sversion=".501.gbe11e53b-15_amd64"
 _schecksum="54ba1bd91020913273c469591cedeebfa34aedc250033dde7c8b3fded94a9c71"
+
+if [ "$XBPS_TARGET_LIBC" = musl ]; then
+	# musl requires compat library and modifying the binary
+	depends+=" gcompat>=0.9.0 patchelf"
+fi
+
 do_install() {
 	vbin ${FILESDIR}/spotify
 	vmkdir usr/share/spotify

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
                   ` (6 preceding siblings ...)
  2020-07-09  2:50 ` ericonr
@ 2020-07-09  8:59 ` ericonr
  2020-07-09 23:39 ` [PR PATCH] [Updated] " ericonr
                   ` (14 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-09  8:59 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 355 bytes --]

New comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/23432#issuecomment-656004599

Comment:
One other option is pulling musl-obstack as another distfile for gcompat, which can then be included as part of the gcompat package. That way, we avoid messing with all the other packages using static musl-obstack.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR PATCH] [Updated] [RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
                   ` (7 preceding siblings ...)
  2020-07-09  8:59 ` ericonr
@ 2020-07-09 23:39 ` ericonr
  2020-07-14 18:25 ` ericonr
                   ` (13 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-09 23:39 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 1150 bytes --]

There is an updated pull request by ericonr against master on the void-packages repository

https://github.com/ericonr/void-packages gcompat
https://github.com/void-linux/void-packages/pull/23432

[RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
Okay, so this is a biggie PR, and I do need help for making some decisions.

- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet. If I can't get it working soon, I will leave the spotify commit out of this one.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `__strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?

A patch file from https://github.com/void-linux/void-packages/pull/23432.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcompat-23432.patch --]
[-- Type: text/x-diff, Size: 15487 bytes --]

From 9b46c2cafefb43884a4f5f72eb278948411ed4d5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:26:32 -0300
Subject: [PATCH 1/9] musl-obstack: ship dynamic lib, split devel.

---
 common/shlibs                 |  1 +
 srcpkgs/musl-obstack-devel    |  1 +
 srcpkgs/musl-obstack/template | 16 +++++++++++++---
 3 files changed, 15 insertions(+), 3 deletions(-)
 create mode 120000 srcpkgs/musl-obstack-devel

diff --git a/common/shlibs b/common/shlibs
index 86ee9fcb734..31272a3530a 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3978,3 +3978,4 @@ libsepol.so.1 libsepol-3.0_1
 libfrrcares.so.0 libfrr-7.3.1_1
 libhugetlbfs.so.0 libhugetlbfs-2.22_1
 libdolphinvcs.so.5 dolphin-plugins-20.04.2_1
+libobstack.so.0 musl-obstack-1.1_4
diff --git a/srcpkgs/musl-obstack-devel b/srcpkgs/musl-obstack-devel
new file mode 120000
index 00000000000..e21ca66cded
--- /dev/null
+++ b/srcpkgs/musl-obstack-devel
@@ -0,0 +1 @@
+musl-obstack
\ No newline at end of file
diff --git a/srcpkgs/musl-obstack/template b/srcpkgs/musl-obstack/template
index 2cd2ddf2efc..4e8bee6afec 100644
--- a/srcpkgs/musl-obstack/template
+++ b/srcpkgs/musl-obstack/template
@@ -1,16 +1,15 @@
 # Template file for 'musl-obstack'
 pkgname=musl-obstack
 version=1.1
-revision=3
+revision=4
 archs="*-musl"
 build_style=gnu-configure
-configure_args="--disable-shared"
 hostmakedepends="automake libtool"
 short_desc="Implementation of obstack for musl libc"
 maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
 license="GPL-2.0-or-later"
 homepage="https://github.com/void-linux/musl-obstack"
-distfiles="https://github.com/void-linux/${pkgname}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
+distfiles="${homepage}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
 checksum=52a216613e7d55e8725e43d017bb2d49a4b1ffa1e06da472f03c7f9875df7d0d
 
 CFLAGS="-fPIC"
@@ -22,3 +21,14 @@ pre_configure() {
 post_install() {
 	vinstall ${pkgname}.pc 644 usr/lib/pkgconfig
 }
+
+musl-obstack-devel_package() {
+	depends="${sourcepkg}-${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/libobstack.a
+		vmove usr/lib/libobstack.so
+		vmove usr/lib/pkgconfig
+	}
+}

From 61cbfc0a97977cd907f0d26c0ce03ec4a359199a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:20 -0300
Subject: [PATCH 2/9] gcompat: update to 0.9.0.

Add musl-obstack dependency.
---
 .../gcompat/patches/ppc-libc_start_main.patch | 67 -------------------
 srcpkgs/gcompat/template                      | 10 +--
 2 files changed, 6 insertions(+), 71 deletions(-)
 delete mode 100644 srcpkgs/gcompat/patches/ppc-libc_start_main.patch

diff --git a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch b/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
deleted file mode 100644
index 518292745f7..00000000000
--- a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d30e49d10cefeb2748373127e1d1aba1184f653d Mon Sep 17 00:00:00 2001
-From: q66 <daniel@octaforge.org>
-Date: Sun, 10 Nov 2019 15:32:28 +0100
-Subject: [PATCH 1/1] internal: add a wrapper for __libc_start_main for
- PowerPC(64(le))
-
-This is necessary because the musl and glibc function signatures
-differ significantly.
----
- libgcompat/internal.c | 41 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 41 insertions(+)
-
-diff --git a/libgcompat/internal.c b/libgcompat/internal.c
-index 450c5e4..53ac429 100644
---- libgcompat/internal.c
-+++ libgcompat/internal.c
-@@ -2,6 +2,47 @@
- #include <stdio.h>
- #include <stdlib.h>
- 
-+#if defined(__powerpc__)
-+
-+/* On PowerPC as well as ppc64, we need to fix up __libc_start_main as the
-+ * glibc and musl versions have wildly different signatures, which would
-+ * result in the arguments to __libc_start_main being completely wrong.
-+ *
-+ * Using dlsym in this context is mildly questionable as this is before
-+ * the full initialization has been done, but there is no better way.
-+ */
-+
-+#include <dlfcn.h>
-+
-+struct startup_info {
-+	void *sda_base;
-+	void *f_main;
-+	void *f_init;
-+	void *f_fini;
-+};
-+
-+typedef int (*start_main_t)(void *mf, int argc, char **argv);
-+
-+/*
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/crt/crt1.c?id=90251cf
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/src/env/__libc_start_main.c?id=90251cf#n71
-+ * ref: https://github.com/bminor/glibc/blob/5cb226d/sysdeps/unix/sysv/linux/powerpc/libc-start.c#L36
-+ */
-+int __libc_start_main(void *argc, void *argv, void *ev, void *auxv, void *fini,
-+                      struct startup_info *si, long *p)
-+{
-+	(void)argc;
-+	(void)argv;
-+	(void)ev;
-+	(void)auxv;
-+	(void)fini;
-+	/* argc/argv from the stack, main from startup_info */
-+	start_main_t mainf = (start_main_t)dlsym(RTLD_NEXT, "__libc_start_main");
-+	return mainf(si->f_main, *p, (void *)(p + 1));
-+}
-+
-+#endif /* defined(__powerpc__) */
-+
- void GCOMPAT__panic(const char *fmt, ...)
- {
- 	va_list va;
--- 
-2.23.0
-
diff --git a/srcpkgs/gcompat/template b/srcpkgs/gcompat/template
index 237f97bd5e9..b2c1e9f8230 100644
--- a/srcpkgs/gcompat/template
+++ b/srcpkgs/gcompat/template
@@ -1,14 +1,16 @@
 # Template file for 'gcompat'
 pkgname=gcompat
-version=0.4.0
+version=0.9.0
 revision=1
 build_style=gnu-makefile
+hostmakedepends="pkg-config"
+makedepends="musl-obstack-devel"
 short_desc="Compatibility layer to allow running glibc binaries on musl systems"
 maintainer="Daniel James <djames@orcadian.net>"
 license="ISC"
 homepage="https://code.foxkit.us/adelie/gcompat"
 distfiles="https://distfiles.AdelieLinux.org/source/${pkgname}/${pkgname}-${version}.tar.xz"
-checksum=9903fac7b70de3ba7736ae2987fa00bbafff7bfcf6a9c88731c292dff19e44e2
+checksum=4555d045d7d2831d11b907719005c5dfbc77642c32f8c0172d40883026ffaf53
 
 build_options="libucontext"
 desc_option_libucontext="Build with ucontext support via libucontext"
@@ -43,10 +45,10 @@ esac
 
 make_build_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
  LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
 make_install_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
  LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
 
 if [ "$build_option_libucontext" ]; then
 	makedepends+=" libucontext-devel"

From af0b4464009b958580a2dedc3552e0c741f5c164 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:12 -0300
Subject: [PATCH 3/9] reiserfsprogs: use musl-obstack-devel.

---
 srcpkgs/reiserfsprogs/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/reiserfsprogs/template b/srcpkgs/reiserfsprogs/template
index 121b03a95a4..8b45947935c 100644
--- a/srcpkgs/reiserfsprogs/template
+++ b/srcpkgs/reiserfsprogs/template
@@ -1,7 +1,7 @@
 # Template file for 'reiserfsprogs'
 pkgname=reiserfsprogs
 version=3.6.27
-revision=1
+revision=2
 build_style=gnu-configure
 hostmakedepends="automake libtool pkg-config"
 makedepends="libuuid-devel e2fsprogs-devel acl-devel"
@@ -14,7 +14,7 @@ checksum=0e95b67fa7746a3c2d59145e9b9c2feb4a6be52853e83b497b182eae508e62e3
 
 case "$XBPS_TARGET_MACHINE" in
 	*-musl)
-		makedepends+=" musl-obstack"
+		makedepends+=" musl-obstack-devel"
 		LDFLAGS="-lobstack"
 	;;
 esac

From df6d47d39f6a6466154b99c260422da813867431 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:40 -0300
Subject: [PATCH 4/9] perl-Proc-ProcessTable: use musl-obstack-devel.

---
 srcpkgs/perl-Proc-ProcessTable/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/perl-Proc-ProcessTable/template b/srcpkgs/perl-Proc-ProcessTable/template
index 58c07f2cb22..3fb6d53f684 100644
--- a/srcpkgs/perl-Proc-ProcessTable/template
+++ b/srcpkgs/perl-Proc-ProcessTable/template
@@ -1,7 +1,7 @@
 # Template file for 'perl-Proc-ProcessTable'
 pkgname=perl-Proc-ProcessTable
 version=0.59
-revision=2
+revision=3
 wrksrc="Proc-ProcessTable-${version}"
 build_style=perl-module
 hostmakedepends="perl"
@@ -15,5 +15,5 @@ distfiles="${CPAN_SITE}/Proc/Proc-ProcessTable-${version}.tar.gz"
 checksum=f8cc5054d78c35a0ce39fb75430b4ef402e2a99013d2ec37e7997f316594606c
 
 case "$XBPS_TARGET_MACHINE" in
-	*-musl) makedepends+=" musl-obstack" ;;
+	*-musl) makedepends+=" musl-obstack-devel" ;;
 esac

From 1172ca589e6464b202e782343c8fcd72ffa64072 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:00 -0300
Subject: [PATCH 5/9] pahole: use musl-obstack-devel.

---
 srcpkgs/pahole/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/pahole/template b/srcpkgs/pahole/template
index e504d3479f7..4d16a3ba7b5 100644
--- a/srcpkgs/pahole/template
+++ b/srcpkgs/pahole/template
@@ -1,7 +1,7 @@
 # Template file for 'pahole'
 pkgname=pahole
 version=1.17
-revision=1
+revision=2
 _bpfver=0.0.7
 build_style=cmake
 configure_args="-D__LIB=lib"
@@ -16,7 +16,7 @@ checksum="51e35041ce43ed08922037a1ee9e415aff1590e0d8d7cbe3e2b003f388db0a8a
  a616ba2ea72d00b4022689b17f4a78365379e3040d0f1a66d28eba52c528e480"
 
 case $XBPS_TARGET_MACHINE in
-	*-musl) makedepends+=" musl-obstack argp-standalone"
+	*-musl) makedepends+=" musl-obstack-devel argp-standalone"
 esac
 
 pre_patch() {

From 95e444876e3fbe3d5279c7e16b198d32fb973437 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:12 -0300
Subject: [PATCH 6/9] hidrd: use musl-obstack-devel.

---
 srcpkgs/hidrd/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/hidrd/template b/srcpkgs/hidrd/template
index 1bb75b98a0c..3470511708c 100644
--- a/srcpkgs/hidrd/template
+++ b/srcpkgs/hidrd/template
@@ -1,7 +1,7 @@
 # Template file for 'hidrd'
 pkgname=hidrd
 version=0.2.0
-revision=1
+revision=2
 build_style=gnu-configure
 hostmakedepends="automake libtool pkg-config"
 short_desc="HID report descriptor I/O library and conversion tool"
@@ -14,7 +14,7 @@ checksum=0147993dedb3066873d22fab1dc3aafec78d8c5783d168cccc43126f0fc3b307
 case $XBPS_TARGET_MACHINE in
 	*-musl)
 		configure_args+=' LIBS=-lobstack'
-		makedepends+=" musl-obstack"
+		makedepends+=" musl-obstack-devel"
 		;;
 esac
 

From dd6e78046f017adb3618d1bd2d793f6c8926d5ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:23 -0300
Subject: [PATCH 7/9] elfutils: use musl-obstack-devel.

---
 srcpkgs/elfutils/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/elfutils/template b/srcpkgs/elfutils/template
index ed40864be48..4523c6db0e2 100644
--- a/srcpkgs/elfutils/template
+++ b/srcpkgs/elfutils/template
@@ -1,7 +1,7 @@
 # Template file for 'elfutils'
 pkgname=elfutils
 version=0.180
-revision=1
+revision=2
 build_style=gnu-configure
 configure_args="--program-prefix=eu- --disable-debuginfod"
 hostmakedepends="automake libtool pkg-config"
@@ -16,7 +16,7 @@ checksum=b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d
 CFLAGS="-Wno-error -Wno-error=null-dereference"
 
 case "$XBPS_TARGET_MACHINE" in
-	*-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack" ;;
+	*-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack-devel" ;;
 esac
 
 if [ "$CROSS_BUILD" ]; then

From 3675c1bd29b2a61ad3fa33e84a34c716d579d430 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:46 -0300
Subject: [PATCH 8/9] cronie: use musl-obstack-devel.

---
 srcpkgs/cronie/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/cronie/template b/srcpkgs/cronie/template
index cd00937e7f5..e2c40f9e645 100644
--- a/srcpkgs/cronie/template
+++ b/srcpkgs/cronie/template
@@ -1,7 +1,7 @@
 # Template file for 'cronie'
 pkgname=cronie
 version=1.5.5
-revision=2
+revision=3
 build_style=gnu-configure
 configure_args="--with-inotify --without-selinux --with-pam
  --enable-anacron --enable-pie --enable-relro"
@@ -34,7 +34,7 @@ alternatives="
 "
 
 if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
-	makedepends+=" musl-obstack"
+	makedepends+=" musl-obstack-devel"
 fi
 
 pre_configure() {

From a0519c19dd3af345bab9e9c1d0d3fec64a83aae3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:34 -0300
Subject: [PATCH 9/9] spotify: enable musl support.

Requires gcompat and patchelf, follows instructions from
https://catfox.life/2020/07/06/live-from-adelie-streaming-spotify-on-musl/
---
 srcpkgs/spotify/INSTALL  | 18 ++++++++++++++++--
 srcpkgs/spotify/template | 10 ++++++++--
 2 files changed, 24 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/spotify/INSTALL b/srcpkgs/spotify/INSTALL
index 1cf70985dcb..6d557133403 100644
--- a/srcpkgs/spotify/INSTALL
+++ b/srcpkgs/spotify/INSTALL
@@ -1,7 +1,7 @@
 # INSTALL for 'spotify'
 # Fetching proprietary binaries at install-time
 
-_BUILDDIR="/tmp/spotify.build"
+_BUILDDIR="$(mktemp -d /tmp/spotify.build.XXXXX)"
 _LIBS=$(ldconfig -vNX -n usr/lib 2>/dev/null)
 
 linklib() {
@@ -10,8 +10,8 @@ linklib() {
 }
 
 if test "$ACTION" = "post"; then
+	# get checksum and version information
 	. usr/share/spotify/pkgdata
-	mkdir -p "$_BUILDDIR"
 	(
 		set -e
 		cd "$_BUILDDIR"
@@ -27,15 +27,29 @@ if test "$ACTION" = "post"; then
 		exit 1;
 	fi
 
+	# delete old package version
 	[ -d "/usr/share/spotify/spotify-client" ] && rm -rf usr/share/spotify/spotify-client
+
+	# copy data
 	mv -f "${_BUILDDIR}/usr/share/spotify" usr/share/spotify/spotify-client
 	for _s in 16 22 24 32 48 64 128 256 512; do
 		mkdir -p "/usr/share/icons/hicolor/${_s}x${_s}/apps"
 		ln -sf "/usr/share/spotify/spotify-client/icons/spotify-linux-${_s}.png" "/usr/share/icons/hicolor/${_s}x${_s}/apps/spotify-client.png"
 	done
+
 	mkdir -p usr/share/applications
 	ln -sf /usr/share/spotify/spotify-client/spotify.desktop usr/share/applications/spotify.desktop
+
+	# https://catfox.life/2020/07/06/live-from-adelie-streaming-spotify-on-musl/
+	if [ "$(xbps-uhelper arch)" = "x86_64-musl" ]; then
+		for _l in libm.so.6 libdl.so.2; do
+			patchelf --remove-needed "${_l}" usr/share/spotify/spotify-client/spotify
+		done
+	fi
+
 	linklib "libssl" "1.0.0"
 	linklib "libcrypto" "1.0.0"
+
+	# cleanup
 	rm -r "$_BUILDDIR"
 fi
diff --git a/srcpkgs/spotify/template b/srcpkgs/spotify/template
index d9ec603bf6a..5053a7224b2 100644
--- a/srcpkgs/spotify/template
+++ b/srcpkgs/spotify/template
@@ -2,17 +2,23 @@
 pkgname=spotify
 version=1.1.26
 revision=1
-archs="x86_64"
+archs="x86_64*"
 create_wrksrc=yes
 build_style=fetch
 depends="binutils gtk+ nss GConf libXScrnSaver libatomic"
 short_desc="Proprietary music streaming client"
 maintainer="Stefan Mühlinghaus <jazzman@alphabreed.com>"
-license="Proprietary"
+license="custom:Proprietary"
 homepage="https://www.spotify.com"
 repository=nonfree
 _sversion=".501.gbe11e53b-15_amd64"
 _schecksum="54ba1bd91020913273c469591cedeebfa34aedc250033dde7c8b3fded94a9c71"
+
+if [ "$XBPS_TARGET_LIBC" = musl ]; then
+	# musl requires compat library and modifying the binary
+	depends+=" gcompat>=0.9.0 patchelf"
+fi
+
 do_install() {
 	vbin ${FILESDIR}/spotify
 	vmkdir usr/share/spotify

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR PATCH] [Updated] [RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
                   ` (8 preceding siblings ...)
  2020-07-09 23:39 ` [PR PATCH] [Updated] " ericonr
@ 2020-07-14 18:25 ` ericonr
  2020-07-14 18:26 ` Update gcompat to 0.9.0, " ericonr
                   ` (12 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-14 18:25 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 1150 bytes --]

There is an updated pull request by ericonr against master on the void-packages repository

https://github.com/ericonr/void-packages gcompat
https://github.com/void-linux/void-packages/pull/23432

[RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
Okay, so this is a biggie PR, and I do need help for making some decisions.

- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet. If I can't get it working soon, I will leave the spotify commit out of this one.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `__strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?

A patch file from https://github.com/void-linux/void-packages/pull/23432.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcompat-23432.patch --]
[-- Type: text/x-diff, Size: 12462 bytes --]

From 9b46c2cafefb43884a4f5f72eb278948411ed4d5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:26:32 -0300
Subject: [PATCH 1/8] musl-obstack: ship dynamic lib, split devel.

---
 common/shlibs                 |  1 +
 srcpkgs/musl-obstack-devel    |  1 +
 srcpkgs/musl-obstack/template | 16 +++++++++++++---
 3 files changed, 15 insertions(+), 3 deletions(-)
 create mode 120000 srcpkgs/musl-obstack-devel

diff --git a/common/shlibs b/common/shlibs
index 86ee9fcb734..31272a3530a 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3978,3 +3978,4 @@ libsepol.so.1 libsepol-3.0_1
 libfrrcares.so.0 libfrr-7.3.1_1
 libhugetlbfs.so.0 libhugetlbfs-2.22_1
 libdolphinvcs.so.5 dolphin-plugins-20.04.2_1
+libobstack.so.0 musl-obstack-1.1_4
diff --git a/srcpkgs/musl-obstack-devel b/srcpkgs/musl-obstack-devel
new file mode 120000
index 00000000000..e21ca66cded
--- /dev/null
+++ b/srcpkgs/musl-obstack-devel
@@ -0,0 +1 @@
+musl-obstack
\ No newline at end of file
diff --git a/srcpkgs/musl-obstack/template b/srcpkgs/musl-obstack/template
index 2cd2ddf2efc..4e8bee6afec 100644
--- a/srcpkgs/musl-obstack/template
+++ b/srcpkgs/musl-obstack/template
@@ -1,16 +1,15 @@
 # Template file for 'musl-obstack'
 pkgname=musl-obstack
 version=1.1
-revision=3
+revision=4
 archs="*-musl"
 build_style=gnu-configure
-configure_args="--disable-shared"
 hostmakedepends="automake libtool"
 short_desc="Implementation of obstack for musl libc"
 maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
 license="GPL-2.0-or-later"
 homepage="https://github.com/void-linux/musl-obstack"
-distfiles="https://github.com/void-linux/${pkgname}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
+distfiles="${homepage}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
 checksum=52a216613e7d55e8725e43d017bb2d49a4b1ffa1e06da472f03c7f9875df7d0d
 
 CFLAGS="-fPIC"
@@ -22,3 +21,14 @@ pre_configure() {
 post_install() {
 	vinstall ${pkgname}.pc 644 usr/lib/pkgconfig
 }
+
+musl-obstack-devel_package() {
+	depends="${sourcepkg}-${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/libobstack.a
+		vmove usr/lib/libobstack.so
+		vmove usr/lib/pkgconfig
+	}
+}

From 61cbfc0a97977cd907f0d26c0ce03ec4a359199a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:20 -0300
Subject: [PATCH 2/8] gcompat: update to 0.9.0.

Add musl-obstack dependency.
---
 .../gcompat/patches/ppc-libc_start_main.patch | 67 -------------------
 srcpkgs/gcompat/template                      | 10 +--
 2 files changed, 6 insertions(+), 71 deletions(-)
 delete mode 100644 srcpkgs/gcompat/patches/ppc-libc_start_main.patch

diff --git a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch b/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
deleted file mode 100644
index 518292745f7..00000000000
--- a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d30e49d10cefeb2748373127e1d1aba1184f653d Mon Sep 17 00:00:00 2001
-From: q66 <daniel@octaforge.org>
-Date: Sun, 10 Nov 2019 15:32:28 +0100
-Subject: [PATCH 1/1] internal: add a wrapper for __libc_start_main for
- PowerPC(64(le))
-
-This is necessary because the musl and glibc function signatures
-differ significantly.
----
- libgcompat/internal.c | 41 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 41 insertions(+)
-
-diff --git a/libgcompat/internal.c b/libgcompat/internal.c
-index 450c5e4..53ac429 100644
---- libgcompat/internal.c
-+++ libgcompat/internal.c
-@@ -2,6 +2,47 @@
- #include <stdio.h>
- #include <stdlib.h>
- 
-+#if defined(__powerpc__)
-+
-+/* On PowerPC as well as ppc64, we need to fix up __libc_start_main as the
-+ * glibc and musl versions have wildly different signatures, which would
-+ * result in the arguments to __libc_start_main being completely wrong.
-+ *
-+ * Using dlsym in this context is mildly questionable as this is before
-+ * the full initialization has been done, but there is no better way.
-+ */
-+
-+#include <dlfcn.h>
-+
-+struct startup_info {
-+	void *sda_base;
-+	void *f_main;
-+	void *f_init;
-+	void *f_fini;
-+};
-+
-+typedef int (*start_main_t)(void *mf, int argc, char **argv);
-+
-+/*
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/crt/crt1.c?id=90251cf
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/src/env/__libc_start_main.c?id=90251cf#n71
-+ * ref: https://github.com/bminor/glibc/blob/5cb226d/sysdeps/unix/sysv/linux/powerpc/libc-start.c#L36
-+ */
-+int __libc_start_main(void *argc, void *argv, void *ev, void *auxv, void *fini,
-+                      struct startup_info *si, long *p)
-+{
-+	(void)argc;
-+	(void)argv;
-+	(void)ev;
-+	(void)auxv;
-+	(void)fini;
-+	/* argc/argv from the stack, main from startup_info */
-+	start_main_t mainf = (start_main_t)dlsym(RTLD_NEXT, "__libc_start_main");
-+	return mainf(si->f_main, *p, (void *)(p + 1));
-+}
-+
-+#endif /* defined(__powerpc__) */
-+
- void GCOMPAT__panic(const char *fmt, ...)
- {
- 	va_list va;
--- 
-2.23.0
-
diff --git a/srcpkgs/gcompat/template b/srcpkgs/gcompat/template
index 237f97bd5e9..b2c1e9f8230 100644
--- a/srcpkgs/gcompat/template
+++ b/srcpkgs/gcompat/template
@@ -1,14 +1,16 @@
 # Template file for 'gcompat'
 pkgname=gcompat
-version=0.4.0
+version=0.9.0
 revision=1
 build_style=gnu-makefile
+hostmakedepends="pkg-config"
+makedepends="musl-obstack-devel"
 short_desc="Compatibility layer to allow running glibc binaries on musl systems"
 maintainer="Daniel James <djames@orcadian.net>"
 license="ISC"
 homepage="https://code.foxkit.us/adelie/gcompat"
 distfiles="https://distfiles.AdelieLinux.org/source/${pkgname}/${pkgname}-${version}.tar.xz"
-checksum=9903fac7b70de3ba7736ae2987fa00bbafff7bfcf6a9c88731c292dff19e44e2
+checksum=4555d045d7d2831d11b907719005c5dfbc77642c32f8c0172d40883026ffaf53
 
 build_options="libucontext"
 desc_option_libucontext="Build with ucontext support via libucontext"
@@ -43,10 +45,10 @@ esac
 
 make_build_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
  LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
 make_install_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
  LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
 
 if [ "$build_option_libucontext" ]; then
 	makedepends+=" libucontext-devel"

From af0b4464009b958580a2dedc3552e0c741f5c164 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:12 -0300
Subject: [PATCH 3/8] reiserfsprogs: use musl-obstack-devel.

---
 srcpkgs/reiserfsprogs/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/reiserfsprogs/template b/srcpkgs/reiserfsprogs/template
index 121b03a95a4..8b45947935c 100644
--- a/srcpkgs/reiserfsprogs/template
+++ b/srcpkgs/reiserfsprogs/template
@@ -1,7 +1,7 @@
 # Template file for 'reiserfsprogs'
 pkgname=reiserfsprogs
 version=3.6.27
-revision=1
+revision=2
 build_style=gnu-configure
 hostmakedepends="automake libtool pkg-config"
 makedepends="libuuid-devel e2fsprogs-devel acl-devel"
@@ -14,7 +14,7 @@ checksum=0e95b67fa7746a3c2d59145e9b9c2feb4a6be52853e83b497b182eae508e62e3
 
 case "$XBPS_TARGET_MACHINE" in
 	*-musl)
-		makedepends+=" musl-obstack"
+		makedepends+=" musl-obstack-devel"
 		LDFLAGS="-lobstack"
 	;;
 esac

From df6d47d39f6a6466154b99c260422da813867431 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:40 -0300
Subject: [PATCH 4/8] perl-Proc-ProcessTable: use musl-obstack-devel.

---
 srcpkgs/perl-Proc-ProcessTable/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/perl-Proc-ProcessTable/template b/srcpkgs/perl-Proc-ProcessTable/template
index 58c07f2cb22..3fb6d53f684 100644
--- a/srcpkgs/perl-Proc-ProcessTable/template
+++ b/srcpkgs/perl-Proc-ProcessTable/template
@@ -1,7 +1,7 @@
 # Template file for 'perl-Proc-ProcessTable'
 pkgname=perl-Proc-ProcessTable
 version=0.59
-revision=2
+revision=3
 wrksrc="Proc-ProcessTable-${version}"
 build_style=perl-module
 hostmakedepends="perl"
@@ -15,5 +15,5 @@ distfiles="${CPAN_SITE}/Proc/Proc-ProcessTable-${version}.tar.gz"
 checksum=f8cc5054d78c35a0ce39fb75430b4ef402e2a99013d2ec37e7997f316594606c
 
 case "$XBPS_TARGET_MACHINE" in
-	*-musl) makedepends+=" musl-obstack" ;;
+	*-musl) makedepends+=" musl-obstack-devel" ;;
 esac

From 1172ca589e6464b202e782343c8fcd72ffa64072 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:00 -0300
Subject: [PATCH 5/8] pahole: use musl-obstack-devel.

---
 srcpkgs/pahole/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/pahole/template b/srcpkgs/pahole/template
index e504d3479f7..4d16a3ba7b5 100644
--- a/srcpkgs/pahole/template
+++ b/srcpkgs/pahole/template
@@ -1,7 +1,7 @@
 # Template file for 'pahole'
 pkgname=pahole
 version=1.17
-revision=1
+revision=2
 _bpfver=0.0.7
 build_style=cmake
 configure_args="-D__LIB=lib"
@@ -16,7 +16,7 @@ checksum="51e35041ce43ed08922037a1ee9e415aff1590e0d8d7cbe3e2b003f388db0a8a
  a616ba2ea72d00b4022689b17f4a78365379e3040d0f1a66d28eba52c528e480"
 
 case $XBPS_TARGET_MACHINE in
-	*-musl) makedepends+=" musl-obstack argp-standalone"
+	*-musl) makedepends+=" musl-obstack-devel argp-standalone"
 esac
 
 pre_patch() {

From 95e444876e3fbe3d5279c7e16b198d32fb973437 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:12 -0300
Subject: [PATCH 6/8] hidrd: use musl-obstack-devel.

---
 srcpkgs/hidrd/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/hidrd/template b/srcpkgs/hidrd/template
index 1bb75b98a0c..3470511708c 100644
--- a/srcpkgs/hidrd/template
+++ b/srcpkgs/hidrd/template
@@ -1,7 +1,7 @@
 # Template file for 'hidrd'
 pkgname=hidrd
 version=0.2.0
-revision=1
+revision=2
 build_style=gnu-configure
 hostmakedepends="automake libtool pkg-config"
 short_desc="HID report descriptor I/O library and conversion tool"
@@ -14,7 +14,7 @@ checksum=0147993dedb3066873d22fab1dc3aafec78d8c5783d168cccc43126f0fc3b307
 case $XBPS_TARGET_MACHINE in
 	*-musl)
 		configure_args+=' LIBS=-lobstack'
-		makedepends+=" musl-obstack"
+		makedepends+=" musl-obstack-devel"
 		;;
 esac
 

From dd6e78046f017adb3618d1bd2d793f6c8926d5ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:23 -0300
Subject: [PATCH 7/8] elfutils: use musl-obstack-devel.

---
 srcpkgs/elfutils/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/elfutils/template b/srcpkgs/elfutils/template
index ed40864be48..4523c6db0e2 100644
--- a/srcpkgs/elfutils/template
+++ b/srcpkgs/elfutils/template
@@ -1,7 +1,7 @@
 # Template file for 'elfutils'
 pkgname=elfutils
 version=0.180
-revision=1
+revision=2
 build_style=gnu-configure
 configure_args="--program-prefix=eu- --disable-debuginfod"
 hostmakedepends="automake libtool pkg-config"
@@ -16,7 +16,7 @@ checksum=b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d
 CFLAGS="-Wno-error -Wno-error=null-dereference"
 
 case "$XBPS_TARGET_MACHINE" in
-	*-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack" ;;
+	*-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack-devel" ;;
 esac
 
 if [ "$CROSS_BUILD" ]; then

From 3675c1bd29b2a61ad3fa33e84a34c716d579d430 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:46 -0300
Subject: [PATCH 8/8] cronie: use musl-obstack-devel.

---
 srcpkgs/cronie/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/cronie/template b/srcpkgs/cronie/template
index cd00937e7f5..e2c40f9e645 100644
--- a/srcpkgs/cronie/template
+++ b/srcpkgs/cronie/template
@@ -1,7 +1,7 @@
 # Template file for 'cronie'
 pkgname=cronie
 version=1.5.5
-revision=2
+revision=3
 build_style=gnu-configure
 configure_args="--with-inotify --without-selinux --with-pam
  --enable-anacron --enable-pie --enable-relro"
@@ -34,7 +34,7 @@ alternatives="
 "
 
 if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
-	makedepends+=" musl-obstack"
+	makedepends+=" musl-obstack-devel"
 fi
 
 pre_configure() {

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Update gcompat to 0.9.0, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
                   ` (9 preceding siblings ...)
  2020-07-14 18:25 ` ericonr
@ 2020-07-14 18:26 ` ericonr
  2020-07-15 17:03 ` ericonr
                   ` (11 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-14 18:26 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 208 bytes --]

New comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/23432#issuecomment-658339169

Comment:
Removed Spotify from the PR, that's going to be a separate project.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Update gcompat to 0.9.0, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
                   ` (10 preceding siblings ...)
  2020-07-14 18:26 ` Update gcompat to 0.9.0, " ericonr
@ 2020-07-15 17:03 ` ericonr
  2020-07-20  4:48 ` [PR PATCH] [Updated] " ericonr
                   ` (10 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-15 17:03 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 192 bytes --]

New comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/23432#issuecomment-658885483

Comment:
Pinging @pullmoll about the change to musl-obstack.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR PATCH] [Updated] Update gcompat to 0.9.0, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
                   ` (11 preceding siblings ...)
  2020-07-15 17:03 ` ericonr
@ 2020-07-20  4:48 ` ericonr
  2020-07-20  4:51 ` ericonr
                   ` (9 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-20  4:48 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 1118 bytes --]

There is an updated pull request by ericonr against master on the void-packages repository

https://github.com/ericonr/void-packages gcompat
https://github.com/void-linux/void-packages/pull/23432

Update gcompat to 0.9.0, use dynamic musl-obstack
Okay, so this is a biggie PR, and I do need help for making some decisions.

- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet. If I can't get it working soon, I will leave the spotify commit out of this one.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `__strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?

A patch file from https://github.com/void-linux/void-packages/pull/23432.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcompat-23432.patch --]
[-- Type: text/x-diff, Size: 12567 bytes --]

From eec5f0d590e8f2960d094b544616b9c7a59cd91a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:26:32 -0300
Subject: [PATCH 1/8] musl-obstack: ship dynamic lib, split devel.

---
 common/shlibs                 |  1 +
 srcpkgs/musl-obstack-devel    |  1 +
 srcpkgs/musl-obstack/template | 16 +++++++++++++---
 3 files changed, 15 insertions(+), 3 deletions(-)
 create mode 120000 srcpkgs/musl-obstack-devel

diff --git a/common/shlibs b/common/shlibs
index 42bb0996d24..6ac4a5c4cb1 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3973,6 +3973,7 @@ libvips-cpp.so.42 libvips-8.9.2_1
 libselinux.so.1 libselinux-3.0_1
 libsepol.so.1 libsepol-3.0_1
 libfrrcares.so.0 libfrr-7.3.1_1
+libobstack.so.0 musl-obstack-1.1_4
 libhugetlbfs.so.0 libhugetlbfs-2.22_1
 libkpathsea.so.6 texlive-20200406_1
 libtexluajit.so.2 texlive-LuaTeX-20200406_1
diff --git a/srcpkgs/musl-obstack-devel b/srcpkgs/musl-obstack-devel
new file mode 120000
index 00000000000..e21ca66cded
--- /dev/null
+++ b/srcpkgs/musl-obstack-devel
@@ -0,0 +1 @@
+musl-obstack
\ No newline at end of file
diff --git a/srcpkgs/musl-obstack/template b/srcpkgs/musl-obstack/template
index 2cd2ddf2efc..4e8bee6afec 100644
--- a/srcpkgs/musl-obstack/template
+++ b/srcpkgs/musl-obstack/template
@@ -1,16 +1,15 @@
 # Template file for 'musl-obstack'
 pkgname=musl-obstack
 version=1.1
-revision=3
+revision=4
 archs="*-musl"
 build_style=gnu-configure
-configure_args="--disable-shared"
 hostmakedepends="automake libtool"
 short_desc="Implementation of obstack for musl libc"
 maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
 license="GPL-2.0-or-later"
 homepage="https://github.com/void-linux/musl-obstack"
-distfiles="https://github.com/void-linux/${pkgname}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
+distfiles="${homepage}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
 checksum=52a216613e7d55e8725e43d017bb2d49a4b1ffa1e06da472f03c7f9875df7d0d
 
 CFLAGS="-fPIC"
@@ -22,3 +21,14 @@ pre_configure() {
 post_install() {
 	vinstall ${pkgname}.pc 644 usr/lib/pkgconfig
 }
+
+musl-obstack-devel_package() {
+	depends="${sourcepkg}-${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/libobstack.a
+		vmove usr/lib/libobstack.so
+		vmove usr/lib/pkgconfig
+	}
+}

From e5f6db15b4d98355674f5d7444c3d8f78f820790 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:20 -0300
Subject: [PATCH 2/8] gcompat: update to 0.9.0.

Add musl-obstack dependency.
---
 .../gcompat/patches/ppc-libc_start_main.patch | 67 -------------------
 srcpkgs/gcompat/template                      | 10 +--
 2 files changed, 6 insertions(+), 71 deletions(-)
 delete mode 100644 srcpkgs/gcompat/patches/ppc-libc_start_main.patch

diff --git a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch b/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
deleted file mode 100644
index 518292745f7..00000000000
--- a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d30e49d10cefeb2748373127e1d1aba1184f653d Mon Sep 17 00:00:00 2001
-From: q66 <daniel@octaforge.org>
-Date: Sun, 10 Nov 2019 15:32:28 +0100
-Subject: [PATCH 1/1] internal: add a wrapper for __libc_start_main for
- PowerPC(64(le))
-
-This is necessary because the musl and glibc function signatures
-differ significantly.
----
- libgcompat/internal.c | 41 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 41 insertions(+)
-
-diff --git a/libgcompat/internal.c b/libgcompat/internal.c
-index 450c5e4..53ac429 100644
---- libgcompat/internal.c
-+++ libgcompat/internal.c
-@@ -2,6 +2,47 @@
- #include <stdio.h>
- #include <stdlib.h>
- 
-+#if defined(__powerpc__)
-+
-+/* On PowerPC as well as ppc64, we need to fix up __libc_start_main as the
-+ * glibc and musl versions have wildly different signatures, which would
-+ * result in the arguments to __libc_start_main being completely wrong.
-+ *
-+ * Using dlsym in this context is mildly questionable as this is before
-+ * the full initialization has been done, but there is no better way.
-+ */
-+
-+#include <dlfcn.h>
-+
-+struct startup_info {
-+	void *sda_base;
-+	void *f_main;
-+	void *f_init;
-+	void *f_fini;
-+};
-+
-+typedef int (*start_main_t)(void *mf, int argc, char **argv);
-+
-+/*
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/crt/crt1.c?id=90251cf
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/src/env/__libc_start_main.c?id=90251cf#n71
-+ * ref: https://github.com/bminor/glibc/blob/5cb226d/sysdeps/unix/sysv/linux/powerpc/libc-start.c#L36
-+ */
-+int __libc_start_main(void *argc, void *argv, void *ev, void *auxv, void *fini,
-+                      struct startup_info *si, long *p)
-+{
-+	(void)argc;
-+	(void)argv;
-+	(void)ev;
-+	(void)auxv;
-+	(void)fini;
-+	/* argc/argv from the stack, main from startup_info */
-+	start_main_t mainf = (start_main_t)dlsym(RTLD_NEXT, "__libc_start_main");
-+	return mainf(si->f_main, *p, (void *)(p + 1));
-+}
-+
-+#endif /* defined(__powerpc__) */
-+
- void GCOMPAT__panic(const char *fmt, ...)
- {
- 	va_list va;
--- 
-2.23.0
-
diff --git a/srcpkgs/gcompat/template b/srcpkgs/gcompat/template
index 237f97bd5e9..b2c1e9f8230 100644
--- a/srcpkgs/gcompat/template
+++ b/srcpkgs/gcompat/template
@@ -1,14 +1,16 @@
 # Template file for 'gcompat'
 pkgname=gcompat
-version=0.4.0
+version=0.9.0
 revision=1
 build_style=gnu-makefile
+hostmakedepends="pkg-config"
+makedepends="musl-obstack-devel"
 short_desc="Compatibility layer to allow running glibc binaries on musl systems"
 maintainer="Daniel James <djames@orcadian.net>"
 license="ISC"
 homepage="https://code.foxkit.us/adelie/gcompat"
 distfiles="https://distfiles.AdelieLinux.org/source/${pkgname}/${pkgname}-${version}.tar.xz"
-checksum=9903fac7b70de3ba7736ae2987fa00bbafff7bfcf6a9c88731c292dff19e44e2
+checksum=4555d045d7d2831d11b907719005c5dfbc77642c32f8c0172d40883026ffaf53
 
 build_options="libucontext"
 desc_option_libucontext="Build with ucontext support via libucontext"
@@ -43,10 +45,10 @@ esac
 
 make_build_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
  LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
 make_install_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
  LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
 
 if [ "$build_option_libucontext" ]; then
 	makedepends+=" libucontext-devel"

From 01b17c2f9870fa3a63d3510ebc02b47886988269 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:12 -0300
Subject: [PATCH 3/8] reiserfsprogs: use musl-obstack-devel.

---
 srcpkgs/reiserfsprogs/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/reiserfsprogs/template b/srcpkgs/reiserfsprogs/template
index 121b03a95a4..8b45947935c 100644
--- a/srcpkgs/reiserfsprogs/template
+++ b/srcpkgs/reiserfsprogs/template
@@ -1,7 +1,7 @@
 # Template file for 'reiserfsprogs'
 pkgname=reiserfsprogs
 version=3.6.27
-revision=1
+revision=2
 build_style=gnu-configure
 hostmakedepends="automake libtool pkg-config"
 makedepends="libuuid-devel e2fsprogs-devel acl-devel"
@@ -14,7 +14,7 @@ checksum=0e95b67fa7746a3c2d59145e9b9c2feb4a6be52853e83b497b182eae508e62e3
 
 case "$XBPS_TARGET_MACHINE" in
 	*-musl)
-		makedepends+=" musl-obstack"
+		makedepends+=" musl-obstack-devel"
 		LDFLAGS="-lobstack"
 	;;
 esac

From 99e02bbc155e38c5c6b022b30ed715a066334d9b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:40 -0300
Subject: [PATCH 4/8] perl-Proc-ProcessTable: use musl-obstack-devel.

---
 srcpkgs/perl-Proc-ProcessTable/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/perl-Proc-ProcessTable/template b/srcpkgs/perl-Proc-ProcessTable/template
index 58c07f2cb22..3fb6d53f684 100644
--- a/srcpkgs/perl-Proc-ProcessTable/template
+++ b/srcpkgs/perl-Proc-ProcessTable/template
@@ -1,7 +1,7 @@
 # Template file for 'perl-Proc-ProcessTable'
 pkgname=perl-Proc-ProcessTable
 version=0.59
-revision=2
+revision=3
 wrksrc="Proc-ProcessTable-${version}"
 build_style=perl-module
 hostmakedepends="perl"
@@ -15,5 +15,5 @@ distfiles="${CPAN_SITE}/Proc/Proc-ProcessTable-${version}.tar.gz"
 checksum=f8cc5054d78c35a0ce39fb75430b4ef402e2a99013d2ec37e7997f316594606c
 
 case "$XBPS_TARGET_MACHINE" in
-	*-musl) makedepends+=" musl-obstack" ;;
+	*-musl) makedepends+=" musl-obstack-devel" ;;
 esac

From 60274843ff8c33d6369c70d117dd04b0dea18229 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:00 -0300
Subject: [PATCH 5/8] pahole: use musl-obstack-devel.

---
 srcpkgs/pahole/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/pahole/template b/srcpkgs/pahole/template
index e504d3479f7..4d16a3ba7b5 100644
--- a/srcpkgs/pahole/template
+++ b/srcpkgs/pahole/template
@@ -1,7 +1,7 @@
 # Template file for 'pahole'
 pkgname=pahole
 version=1.17
-revision=1
+revision=2
 _bpfver=0.0.7
 build_style=cmake
 configure_args="-D__LIB=lib"
@@ -16,7 +16,7 @@ checksum="51e35041ce43ed08922037a1ee9e415aff1590e0d8d7cbe3e2b003f388db0a8a
  a616ba2ea72d00b4022689b17f4a78365379e3040d0f1a66d28eba52c528e480"
 
 case $XBPS_TARGET_MACHINE in
-	*-musl) makedepends+=" musl-obstack argp-standalone"
+	*-musl) makedepends+=" musl-obstack-devel argp-standalone"
 esac
 
 pre_patch() {

From df9d6636537031d410efea41a4e0feb5476a5cbd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:12 -0300
Subject: [PATCH 6/8] hidrd: use musl-obstack-devel.

---
 srcpkgs/hidrd/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/hidrd/template b/srcpkgs/hidrd/template
index 1bb75b98a0c..3470511708c 100644
--- a/srcpkgs/hidrd/template
+++ b/srcpkgs/hidrd/template
@@ -1,7 +1,7 @@
 # Template file for 'hidrd'
 pkgname=hidrd
 version=0.2.0
-revision=1
+revision=2
 build_style=gnu-configure
 hostmakedepends="automake libtool pkg-config"
 short_desc="HID report descriptor I/O library and conversion tool"
@@ -14,7 +14,7 @@ checksum=0147993dedb3066873d22fab1dc3aafec78d8c5783d168cccc43126f0fc3b307
 case $XBPS_TARGET_MACHINE in
 	*-musl)
 		configure_args+=' LIBS=-lobstack'
-		makedepends+=" musl-obstack"
+		makedepends+=" musl-obstack-devel"
 		;;
 esac
 

From 5061f170d59d1f37ba04298bffa927105b274388 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:23 -0300
Subject: [PATCH 7/8] elfutils: use musl-obstack-devel.

---
 srcpkgs/elfutils/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/elfutils/template b/srcpkgs/elfutils/template
index ed40864be48..4523c6db0e2 100644
--- a/srcpkgs/elfutils/template
+++ b/srcpkgs/elfutils/template
@@ -1,7 +1,7 @@
 # Template file for 'elfutils'
 pkgname=elfutils
 version=0.180
-revision=1
+revision=2
 build_style=gnu-configure
 configure_args="--program-prefix=eu- --disable-debuginfod"
 hostmakedepends="automake libtool pkg-config"
@@ -16,7 +16,7 @@ checksum=b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d
 CFLAGS="-Wno-error -Wno-error=null-dereference"
 
 case "$XBPS_TARGET_MACHINE" in
-	*-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack" ;;
+	*-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack-devel" ;;
 esac
 
 if [ "$CROSS_BUILD" ]; then

From 3ba41fce928befad5534e652c23cebdb0e3322f9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:46 -0300
Subject: [PATCH 8/8] cronie: use musl-obstack-devel.

---
 srcpkgs/cronie/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/cronie/template b/srcpkgs/cronie/template
index cd00937e7f5..e2c40f9e645 100644
--- a/srcpkgs/cronie/template
+++ b/srcpkgs/cronie/template
@@ -1,7 +1,7 @@
 # Template file for 'cronie'
 pkgname=cronie
 version=1.5.5
-revision=2
+revision=3
 build_style=gnu-configure
 configure_args="--with-inotify --without-selinux --with-pam
  --enable-anacron --enable-pie --enable-relro"
@@ -34,7 +34,7 @@ alternatives="
 "
 
 if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
-	makedepends+=" musl-obstack"
+	makedepends+=" musl-obstack-devel"
 fi
 
 pre_configure() {

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR PATCH] [Updated] Update gcompat to 0.9.0, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
                   ` (12 preceding siblings ...)
  2020-07-20  4:48 ` [PR PATCH] [Updated] " ericonr
@ 2020-07-20  4:51 ` ericonr
  2020-07-28  2:58 ` ericonr
                   ` (8 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-20  4:51 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 1118 bytes --]

There is an updated pull request by ericonr against master on the void-packages repository

https://github.com/ericonr/void-packages gcompat
https://github.com/void-linux/void-packages/pull/23432

Update gcompat to 0.9.0, use dynamic musl-obstack
Okay, so this is a biggie PR, and I do need help for making some decisions.

- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet. If I can't get it working soon, I will leave the spotify commit out of this one.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `__strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?

A patch file from https://github.com/void-linux/void-packages/pull/23432.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcompat-23432.patch --]
[-- Type: text/x-diff, Size: 12562 bytes --]

From fca1f33d5d5693abf342e76d637c9ec9d44167f3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:26:32 -0300
Subject: [PATCH 1/8] musl-obstack: ship dynamic lib, split devel.

---
 common/shlibs                 |  1 +
 srcpkgs/musl-obstack-devel    |  1 +
 srcpkgs/musl-obstack/template | 16 +++++++++++++---
 3 files changed, 15 insertions(+), 3 deletions(-)
 create mode 120000 srcpkgs/musl-obstack-devel

diff --git a/common/shlibs b/common/shlibs
index 42bb0996d24..780df6f25b6 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -2459,6 +2459,7 @@ libkookularGenerator_odp.so.17 calligra-extras-3.2.0_1
 libgemini.so.17 calligra-gemini-3.2.0_1
 libarpack.so.2 arpack-ng-3.3.0_2
 libfts.so.0 musl-fts-1.2_2
+libobstack.so.0 musl-obstack-1.1_4
 libucontext.so.0 libucontext-0.1.1_1
 libgavl.so.1 gavl-1.40_1
 libmxml.so.1 mxml-2.9_1
diff --git a/srcpkgs/musl-obstack-devel b/srcpkgs/musl-obstack-devel
new file mode 120000
index 00000000000..e21ca66cded
--- /dev/null
+++ b/srcpkgs/musl-obstack-devel
@@ -0,0 +1 @@
+musl-obstack
\ No newline at end of file
diff --git a/srcpkgs/musl-obstack/template b/srcpkgs/musl-obstack/template
index 2cd2ddf2efc..4e8bee6afec 100644
--- a/srcpkgs/musl-obstack/template
+++ b/srcpkgs/musl-obstack/template
@@ -1,16 +1,15 @@
 # Template file for 'musl-obstack'
 pkgname=musl-obstack
 version=1.1
-revision=3
+revision=4
 archs="*-musl"
 build_style=gnu-configure
-configure_args="--disable-shared"
 hostmakedepends="automake libtool"
 short_desc="Implementation of obstack for musl libc"
 maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
 license="GPL-2.0-or-later"
 homepage="https://github.com/void-linux/musl-obstack"
-distfiles="https://github.com/void-linux/${pkgname}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
+distfiles="${homepage}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
 checksum=52a216613e7d55e8725e43d017bb2d49a4b1ffa1e06da472f03c7f9875df7d0d
 
 CFLAGS="-fPIC"
@@ -22,3 +21,14 @@ pre_configure() {
 post_install() {
 	vinstall ${pkgname}.pc 644 usr/lib/pkgconfig
 }
+
+musl-obstack-devel_package() {
+	depends="${sourcepkg}-${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/libobstack.a
+		vmove usr/lib/libobstack.so
+		vmove usr/lib/pkgconfig
+	}
+}

From 043ae1c9df2d232a9d6de934400e3c67eb48ed93 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:20 -0300
Subject: [PATCH 2/8] gcompat: update to 0.9.0.

Add musl-obstack dependency.
---
 .../gcompat/patches/ppc-libc_start_main.patch | 67 -------------------
 srcpkgs/gcompat/template                      | 10 +--
 2 files changed, 6 insertions(+), 71 deletions(-)
 delete mode 100644 srcpkgs/gcompat/patches/ppc-libc_start_main.patch

diff --git a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch b/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
deleted file mode 100644
index 518292745f7..00000000000
--- a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d30e49d10cefeb2748373127e1d1aba1184f653d Mon Sep 17 00:00:00 2001
-From: q66 <daniel@octaforge.org>
-Date: Sun, 10 Nov 2019 15:32:28 +0100
-Subject: [PATCH 1/1] internal: add a wrapper for __libc_start_main for
- PowerPC(64(le))
-
-This is necessary because the musl and glibc function signatures
-differ significantly.
----
- libgcompat/internal.c | 41 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 41 insertions(+)
-
-diff --git a/libgcompat/internal.c b/libgcompat/internal.c
-index 450c5e4..53ac429 100644
---- libgcompat/internal.c
-+++ libgcompat/internal.c
-@@ -2,6 +2,47 @@
- #include <stdio.h>
- #include <stdlib.h>
- 
-+#if defined(__powerpc__)
-+
-+/* On PowerPC as well as ppc64, we need to fix up __libc_start_main as the
-+ * glibc and musl versions have wildly different signatures, which would
-+ * result in the arguments to __libc_start_main being completely wrong.
-+ *
-+ * Using dlsym in this context is mildly questionable as this is before
-+ * the full initialization has been done, but there is no better way.
-+ */
-+
-+#include <dlfcn.h>
-+
-+struct startup_info {
-+	void *sda_base;
-+	void *f_main;
-+	void *f_init;
-+	void *f_fini;
-+};
-+
-+typedef int (*start_main_t)(void *mf, int argc, char **argv);
-+
-+/*
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/crt/crt1.c?id=90251cf
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/src/env/__libc_start_main.c?id=90251cf#n71
-+ * ref: https://github.com/bminor/glibc/blob/5cb226d/sysdeps/unix/sysv/linux/powerpc/libc-start.c#L36
-+ */
-+int __libc_start_main(void *argc, void *argv, void *ev, void *auxv, void *fini,
-+                      struct startup_info *si, long *p)
-+{
-+	(void)argc;
-+	(void)argv;
-+	(void)ev;
-+	(void)auxv;
-+	(void)fini;
-+	/* argc/argv from the stack, main from startup_info */
-+	start_main_t mainf = (start_main_t)dlsym(RTLD_NEXT, "__libc_start_main");
-+	return mainf(si->f_main, *p, (void *)(p + 1));
-+}
-+
-+#endif /* defined(__powerpc__) */
-+
- void GCOMPAT__panic(const char *fmt, ...)
- {
- 	va_list va;
--- 
-2.23.0
-
diff --git a/srcpkgs/gcompat/template b/srcpkgs/gcompat/template
index 237f97bd5e9..b2c1e9f8230 100644
--- a/srcpkgs/gcompat/template
+++ b/srcpkgs/gcompat/template
@@ -1,14 +1,16 @@
 # Template file for 'gcompat'
 pkgname=gcompat
-version=0.4.0
+version=0.9.0
 revision=1
 build_style=gnu-makefile
+hostmakedepends="pkg-config"
+makedepends="musl-obstack-devel"
 short_desc="Compatibility layer to allow running glibc binaries on musl systems"
 maintainer="Daniel James <djames@orcadian.net>"
 license="ISC"
 homepage="https://code.foxkit.us/adelie/gcompat"
 distfiles="https://distfiles.AdelieLinux.org/source/${pkgname}/${pkgname}-${version}.tar.xz"
-checksum=9903fac7b70de3ba7736ae2987fa00bbafff7bfcf6a9c88731c292dff19e44e2
+checksum=4555d045d7d2831d11b907719005c5dfbc77642c32f8c0172d40883026ffaf53
 
 build_options="libucontext"
 desc_option_libucontext="Build with ucontext support via libucontext"
@@ -43,10 +45,10 @@ esac
 
 make_build_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
  LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
 make_install_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
  LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
 
 if [ "$build_option_libucontext" ]; then
 	makedepends+=" libucontext-devel"

From 3a38187427f8816938b7a1e08bf3df5956c3effd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:12 -0300
Subject: [PATCH 3/8] reiserfsprogs: use musl-obstack-devel.

---
 srcpkgs/reiserfsprogs/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/reiserfsprogs/template b/srcpkgs/reiserfsprogs/template
index 121b03a95a4..8b45947935c 100644
--- a/srcpkgs/reiserfsprogs/template
+++ b/srcpkgs/reiserfsprogs/template
@@ -1,7 +1,7 @@
 # Template file for 'reiserfsprogs'
 pkgname=reiserfsprogs
 version=3.6.27
-revision=1
+revision=2
 build_style=gnu-configure
 hostmakedepends="automake libtool pkg-config"
 makedepends="libuuid-devel e2fsprogs-devel acl-devel"
@@ -14,7 +14,7 @@ checksum=0e95b67fa7746a3c2d59145e9b9c2feb4a6be52853e83b497b182eae508e62e3
 
 case "$XBPS_TARGET_MACHINE" in
 	*-musl)
-		makedepends+=" musl-obstack"
+		makedepends+=" musl-obstack-devel"
 		LDFLAGS="-lobstack"
 	;;
 esac

From b88a6ec4691fd22de7116a100ae3dd7e303262cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:40 -0300
Subject: [PATCH 4/8] perl-Proc-ProcessTable: use musl-obstack-devel.

---
 srcpkgs/perl-Proc-ProcessTable/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/perl-Proc-ProcessTable/template b/srcpkgs/perl-Proc-ProcessTable/template
index 58c07f2cb22..3fb6d53f684 100644
--- a/srcpkgs/perl-Proc-ProcessTable/template
+++ b/srcpkgs/perl-Proc-ProcessTable/template
@@ -1,7 +1,7 @@
 # Template file for 'perl-Proc-ProcessTable'
 pkgname=perl-Proc-ProcessTable
 version=0.59
-revision=2
+revision=3
 wrksrc="Proc-ProcessTable-${version}"
 build_style=perl-module
 hostmakedepends="perl"
@@ -15,5 +15,5 @@ distfiles="${CPAN_SITE}/Proc/Proc-ProcessTable-${version}.tar.gz"
 checksum=f8cc5054d78c35a0ce39fb75430b4ef402e2a99013d2ec37e7997f316594606c
 
 case "$XBPS_TARGET_MACHINE" in
-	*-musl) makedepends+=" musl-obstack" ;;
+	*-musl) makedepends+=" musl-obstack-devel" ;;
 esac

From bc3edc56bb73793c67663700e68265c5086c2e19 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:00 -0300
Subject: [PATCH 5/8] pahole: use musl-obstack-devel.

---
 srcpkgs/pahole/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/pahole/template b/srcpkgs/pahole/template
index e504d3479f7..4d16a3ba7b5 100644
--- a/srcpkgs/pahole/template
+++ b/srcpkgs/pahole/template
@@ -1,7 +1,7 @@
 # Template file for 'pahole'
 pkgname=pahole
 version=1.17
-revision=1
+revision=2
 _bpfver=0.0.7
 build_style=cmake
 configure_args="-D__LIB=lib"
@@ -16,7 +16,7 @@ checksum="51e35041ce43ed08922037a1ee9e415aff1590e0d8d7cbe3e2b003f388db0a8a
  a616ba2ea72d00b4022689b17f4a78365379e3040d0f1a66d28eba52c528e480"
 
 case $XBPS_TARGET_MACHINE in
-	*-musl) makedepends+=" musl-obstack argp-standalone"
+	*-musl) makedepends+=" musl-obstack-devel argp-standalone"
 esac
 
 pre_patch() {

From 8d80a21f0aed9495d46aac3c83117460f0de5c3e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:12 -0300
Subject: [PATCH 6/8] hidrd: use musl-obstack-devel.

---
 srcpkgs/hidrd/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/hidrd/template b/srcpkgs/hidrd/template
index 1bb75b98a0c..3470511708c 100644
--- a/srcpkgs/hidrd/template
+++ b/srcpkgs/hidrd/template
@@ -1,7 +1,7 @@
 # Template file for 'hidrd'
 pkgname=hidrd
 version=0.2.0
-revision=1
+revision=2
 build_style=gnu-configure
 hostmakedepends="automake libtool pkg-config"
 short_desc="HID report descriptor I/O library and conversion tool"
@@ -14,7 +14,7 @@ checksum=0147993dedb3066873d22fab1dc3aafec78d8c5783d168cccc43126f0fc3b307
 case $XBPS_TARGET_MACHINE in
 	*-musl)
 		configure_args+=' LIBS=-lobstack'
-		makedepends+=" musl-obstack"
+		makedepends+=" musl-obstack-devel"
 		;;
 esac
 

From 97277b2bd4b45557653e0ee209c9b6e0b8306a57 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:23 -0300
Subject: [PATCH 7/8] elfutils: use musl-obstack-devel.

---
 srcpkgs/elfutils/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/elfutils/template b/srcpkgs/elfutils/template
index ed40864be48..4523c6db0e2 100644
--- a/srcpkgs/elfutils/template
+++ b/srcpkgs/elfutils/template
@@ -1,7 +1,7 @@
 # Template file for 'elfutils'
 pkgname=elfutils
 version=0.180
-revision=1
+revision=2
 build_style=gnu-configure
 configure_args="--program-prefix=eu- --disable-debuginfod"
 hostmakedepends="automake libtool pkg-config"
@@ -16,7 +16,7 @@ checksum=b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d
 CFLAGS="-Wno-error -Wno-error=null-dereference"
 
 case "$XBPS_TARGET_MACHINE" in
-	*-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack" ;;
+	*-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack-devel" ;;
 esac
 
 if [ "$CROSS_BUILD" ]; then

From 2edb889a56fbd2bc46be3a60d810d4e189293c11 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:46 -0300
Subject: [PATCH 8/8] cronie: use musl-obstack-devel.

---
 srcpkgs/cronie/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/cronie/template b/srcpkgs/cronie/template
index cd00937e7f5..e2c40f9e645 100644
--- a/srcpkgs/cronie/template
+++ b/srcpkgs/cronie/template
@@ -1,7 +1,7 @@
 # Template file for 'cronie'
 pkgname=cronie
 version=1.5.5
-revision=2
+revision=3
 build_style=gnu-configure
 configure_args="--with-inotify --without-selinux --with-pam
  --enable-anacron --enable-pie --enable-relro"
@@ -34,7 +34,7 @@ alternatives="
 "
 
 if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
-	makedepends+=" musl-obstack"
+	makedepends+=" musl-obstack-devel"
 fi
 
 pre_configure() {

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR PATCH] [Updated] Update gcompat to 0.9.0, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
                   ` (13 preceding siblings ...)
  2020-07-20  4:51 ` ericonr
@ 2020-07-28  2:58 ` ericonr
  2020-07-28  3:02 ` ericonr
                   ` (7 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-28  2:58 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 1118 bytes --]

There is an updated pull request by ericonr against master on the void-packages repository

https://github.com/ericonr/void-packages gcompat
https://github.com/void-linux/void-packages/pull/23432

Update gcompat to 0.9.0, use dynamic musl-obstack
Okay, so this is a biggie PR, and I do need help for making some decisions.

- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet. If I can't get it working soon, I will leave the spotify commit out of this one.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `__strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?

A patch file from https://github.com/void-linux/void-packages/pull/23432.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcompat-23432.patch --]
[-- Type: text/x-diff, Size: 12622 bytes --]

From 9420a7f76bd7628726c2c4e07102ad315d6f6930 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:26:32 -0300
Subject: [PATCH 1/8] musl-obstack: ship dynamic lib, split devel.

---
 common/shlibs                 |  1 +
 srcpkgs/musl-obstack-devel    |  1 +
 srcpkgs/musl-obstack/template | 16 +++++++++++++---
 3 files changed, 15 insertions(+), 3 deletions(-)
 create mode 120000 srcpkgs/musl-obstack-devel

diff --git a/common/shlibs b/common/shlibs
index b81b17ce2e4..d5df183d7be 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -2454,6 +2454,7 @@ libkookularGenerator_odp.so.17 calligra-extras-3.2.0_1
 libgemini.so.17 calligra-gemini-3.2.0_1
 libarpack.so.2 arpack-ng-3.3.0_2
 libfts.so.0 musl-fts-1.2_2
+libobstack.so.0 musl-obstack-1.1_4
 libucontext.so.0 libucontext-0.1.1_1
 libgavl.so.1 gavl-1.40_1
 libmxml.so.1 mxml-2.9_1
diff --git a/srcpkgs/musl-obstack-devel b/srcpkgs/musl-obstack-devel
new file mode 120000
index 00000000000..e21ca66cded
--- /dev/null
+++ b/srcpkgs/musl-obstack-devel
@@ -0,0 +1 @@
+musl-obstack
\ No newline at end of file
diff --git a/srcpkgs/musl-obstack/template b/srcpkgs/musl-obstack/template
index 2cd2ddf2efc..4e8bee6afec 100644
--- a/srcpkgs/musl-obstack/template
+++ b/srcpkgs/musl-obstack/template
@@ -1,16 +1,15 @@
 # Template file for 'musl-obstack'
 pkgname=musl-obstack
 version=1.1
-revision=3
+revision=4
 archs="*-musl"
 build_style=gnu-configure
-configure_args="--disable-shared"
 hostmakedepends="automake libtool"
 short_desc="Implementation of obstack for musl libc"
 maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
 license="GPL-2.0-or-later"
 homepage="https://github.com/void-linux/musl-obstack"
-distfiles="https://github.com/void-linux/${pkgname}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
+distfiles="${homepage}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
 checksum=52a216613e7d55e8725e43d017bb2d49a4b1ffa1e06da472f03c7f9875df7d0d
 
 CFLAGS="-fPIC"
@@ -22,3 +21,14 @@ pre_configure() {
 post_install() {
 	vinstall ${pkgname}.pc 644 usr/lib/pkgconfig
 }
+
+musl-obstack-devel_package() {
+	depends="${sourcepkg}-${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/libobstack.a
+		vmove usr/lib/libobstack.so
+		vmove usr/lib/pkgconfig
+	}
+}

From 2322ac96c21829dbe5335cd42933468a5c651c9e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:20 -0300
Subject: [PATCH 2/8] gcompat: update to 0.9.0, adopt.

Add musl-obstack dependency.
---
 .../gcompat/patches/ppc-libc_start_main.patch | 67 -------------------
 srcpkgs/gcompat/template                      | 12 ++--
 2 files changed, 7 insertions(+), 72 deletions(-)
 delete mode 100644 srcpkgs/gcompat/patches/ppc-libc_start_main.patch

diff --git a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch b/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
deleted file mode 100644
index 518292745f7..00000000000
--- a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d30e49d10cefeb2748373127e1d1aba1184f653d Mon Sep 17 00:00:00 2001
-From: q66 <daniel@octaforge.org>
-Date: Sun, 10 Nov 2019 15:32:28 +0100
-Subject: [PATCH 1/1] internal: add a wrapper for __libc_start_main for
- PowerPC(64(le))
-
-This is necessary because the musl and glibc function signatures
-differ significantly.
----
- libgcompat/internal.c | 41 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 41 insertions(+)
-
-diff --git a/libgcompat/internal.c b/libgcompat/internal.c
-index 450c5e4..53ac429 100644
---- libgcompat/internal.c
-+++ libgcompat/internal.c
-@@ -2,6 +2,47 @@
- #include <stdio.h>
- #include <stdlib.h>
- 
-+#if defined(__powerpc__)
-+
-+/* On PowerPC as well as ppc64, we need to fix up __libc_start_main as the
-+ * glibc and musl versions have wildly different signatures, which would
-+ * result in the arguments to __libc_start_main being completely wrong.
-+ *
-+ * Using dlsym in this context is mildly questionable as this is before
-+ * the full initialization has been done, but there is no better way.
-+ */
-+
-+#include <dlfcn.h>
-+
-+struct startup_info {
-+	void *sda_base;
-+	void *f_main;
-+	void *f_init;
-+	void *f_fini;
-+};
-+
-+typedef int (*start_main_t)(void *mf, int argc, char **argv);
-+
-+/*
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/crt/crt1.c?id=90251cf
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/src/env/__libc_start_main.c?id=90251cf#n71
-+ * ref: https://github.com/bminor/glibc/blob/5cb226d/sysdeps/unix/sysv/linux/powerpc/libc-start.c#L36
-+ */
-+int __libc_start_main(void *argc, void *argv, void *ev, void *auxv, void *fini,
-+                      struct startup_info *si, long *p)
-+{
-+	(void)argc;
-+	(void)argv;
-+	(void)ev;
-+	(void)auxv;
-+	(void)fini;
-+	/* argc/argv from the stack, main from startup_info */
-+	start_main_t mainf = (start_main_t)dlsym(RTLD_NEXT, "__libc_start_main");
-+	return mainf(si->f_main, *p, (void *)(p + 1));
-+}
-+
-+#endif /* defined(__powerpc__) */
-+
- void GCOMPAT__panic(const char *fmt, ...)
- {
- 	va_list va;
--- 
-2.23.0
-
diff --git a/srcpkgs/gcompat/template b/srcpkgs/gcompat/template
index 237f97bd5e9..3d3d4e72d72 100644
--- a/srcpkgs/gcompat/template
+++ b/srcpkgs/gcompat/template
@@ -1,14 +1,16 @@
 # Template file for 'gcompat'
 pkgname=gcompat
-version=0.4.0
+version=0.9.0
 revision=1
 build_style=gnu-makefile
+hostmakedepends="pkg-config"
+makedepends="musl-obstack-devel"
 short_desc="Compatibility layer to allow running glibc binaries on musl systems"
-maintainer="Daniel James <djames@orcadian.net>"
+maintainer="Érico Nogueira <ericonr@disroot.org>"
 license="ISC"
 homepage="https://code.foxkit.us/adelie/gcompat"
 distfiles="https://distfiles.AdelieLinux.org/source/${pkgname}/${pkgname}-${version}.tar.xz"
-checksum=9903fac7b70de3ba7736ae2987fa00bbafff7bfcf6a9c88731c292dff19e44e2
+checksum=4555d045d7d2831d11b907719005c5dfbc77642c32f8c0172d40883026ffaf53
 
 build_options="libucontext"
 desc_option_libucontext="Build with ucontext support via libucontext"
@@ -43,10 +45,10 @@ esac
 
 make_build_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
  LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
 make_install_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
  LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
 
 if [ "$build_option_libucontext" ]; then
 	makedepends+=" libucontext-devel"

From 0dc4267bbb8230d4bb9de50d63d05da31cb3149c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:12 -0300
Subject: [PATCH 3/8] reiserfsprogs: use musl-obstack-devel.

---
 srcpkgs/reiserfsprogs/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/reiserfsprogs/template b/srcpkgs/reiserfsprogs/template
index 121b03a95a4..8b45947935c 100644
--- a/srcpkgs/reiserfsprogs/template
+++ b/srcpkgs/reiserfsprogs/template
@@ -1,7 +1,7 @@
 # Template file for 'reiserfsprogs'
 pkgname=reiserfsprogs
 version=3.6.27
-revision=1
+revision=2
 build_style=gnu-configure
 hostmakedepends="automake libtool pkg-config"
 makedepends="libuuid-devel e2fsprogs-devel acl-devel"
@@ -14,7 +14,7 @@ checksum=0e95b67fa7746a3c2d59145e9b9c2feb4a6be52853e83b497b182eae508e62e3
 
 case "$XBPS_TARGET_MACHINE" in
 	*-musl)
-		makedepends+=" musl-obstack"
+		makedepends+=" musl-obstack-devel"
 		LDFLAGS="-lobstack"
 	;;
 esac

From f0d0f87219364c6b15d714fbd4bb7d9736d82648 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:40 -0300
Subject: [PATCH 4/8] perl-Proc-ProcessTable: use musl-obstack-devel.

---
 srcpkgs/perl-Proc-ProcessTable/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/perl-Proc-ProcessTable/template b/srcpkgs/perl-Proc-ProcessTable/template
index 58c07f2cb22..3fb6d53f684 100644
--- a/srcpkgs/perl-Proc-ProcessTable/template
+++ b/srcpkgs/perl-Proc-ProcessTable/template
@@ -1,7 +1,7 @@
 # Template file for 'perl-Proc-ProcessTable'
 pkgname=perl-Proc-ProcessTable
 version=0.59
-revision=2
+revision=3
 wrksrc="Proc-ProcessTable-${version}"
 build_style=perl-module
 hostmakedepends="perl"
@@ -15,5 +15,5 @@ distfiles="${CPAN_SITE}/Proc/Proc-ProcessTable-${version}.tar.gz"
 checksum=f8cc5054d78c35a0ce39fb75430b4ef402e2a99013d2ec37e7997f316594606c
 
 case "$XBPS_TARGET_MACHINE" in
-	*-musl) makedepends+=" musl-obstack" ;;
+	*-musl) makedepends+=" musl-obstack-devel" ;;
 esac

From 406f14c6bec650980c58bdb08e6ae556c5726f10 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:00 -0300
Subject: [PATCH 5/8] pahole: use musl-obstack-devel.

---
 srcpkgs/pahole/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/pahole/template b/srcpkgs/pahole/template
index e504d3479f7..4d16a3ba7b5 100644
--- a/srcpkgs/pahole/template
+++ b/srcpkgs/pahole/template
@@ -1,7 +1,7 @@
 # Template file for 'pahole'
 pkgname=pahole
 version=1.17
-revision=1
+revision=2
 _bpfver=0.0.7
 build_style=cmake
 configure_args="-D__LIB=lib"
@@ -16,7 +16,7 @@ checksum="51e35041ce43ed08922037a1ee9e415aff1590e0d8d7cbe3e2b003f388db0a8a
  a616ba2ea72d00b4022689b17f4a78365379e3040d0f1a66d28eba52c528e480"
 
 case $XBPS_TARGET_MACHINE in
-	*-musl) makedepends+=" musl-obstack argp-standalone"
+	*-musl) makedepends+=" musl-obstack-devel argp-standalone"
 esac
 
 pre_patch() {

From 36c1724aeabee3ddb3fbc3f62dd1853756085a28 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:12 -0300
Subject: [PATCH 6/8] hidrd: use musl-obstack-devel.

---
 srcpkgs/hidrd/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/hidrd/template b/srcpkgs/hidrd/template
index 1bb75b98a0c..3470511708c 100644
--- a/srcpkgs/hidrd/template
+++ b/srcpkgs/hidrd/template
@@ -1,7 +1,7 @@
 # Template file for 'hidrd'
 pkgname=hidrd
 version=0.2.0
-revision=1
+revision=2
 build_style=gnu-configure
 hostmakedepends="automake libtool pkg-config"
 short_desc="HID report descriptor I/O library and conversion tool"
@@ -14,7 +14,7 @@ checksum=0147993dedb3066873d22fab1dc3aafec78d8c5783d168cccc43126f0fc3b307
 case $XBPS_TARGET_MACHINE in
 	*-musl)
 		configure_args+=' LIBS=-lobstack'
-		makedepends+=" musl-obstack"
+		makedepends+=" musl-obstack-devel"
 		;;
 esac
 

From cc95a7f0bad994073efbbe8cd7afeea20f5591ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:23 -0300
Subject: [PATCH 7/8] elfutils: use musl-obstack-devel.

---
 srcpkgs/elfutils/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/elfutils/template b/srcpkgs/elfutils/template
index ed40864be48..4523c6db0e2 100644
--- a/srcpkgs/elfutils/template
+++ b/srcpkgs/elfutils/template
@@ -1,7 +1,7 @@
 # Template file for 'elfutils'
 pkgname=elfutils
 version=0.180
-revision=1
+revision=2
 build_style=gnu-configure
 configure_args="--program-prefix=eu- --disable-debuginfod"
 hostmakedepends="automake libtool pkg-config"
@@ -16,7 +16,7 @@ checksum=b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d
 CFLAGS="-Wno-error -Wno-error=null-dereference"
 
 case "$XBPS_TARGET_MACHINE" in
-	*-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack" ;;
+	*-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack-devel" ;;
 esac
 
 if [ "$CROSS_BUILD" ]; then

From 3d89145c3cdcd697bab61fff3310bcb6091d25e9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:46 -0300
Subject: [PATCH 8/8] cronie: use musl-obstack-devel.

---
 srcpkgs/cronie/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/cronie/template b/srcpkgs/cronie/template
index cd00937e7f5..e2c40f9e645 100644
--- a/srcpkgs/cronie/template
+++ b/srcpkgs/cronie/template
@@ -1,7 +1,7 @@
 # Template file for 'cronie'
 pkgname=cronie
 version=1.5.5
-revision=2
+revision=3
 build_style=gnu-configure
 configure_args="--with-inotify --without-selinux --with-pam
  --enable-anacron --enable-pie --enable-relro"
@@ -34,7 +34,7 @@ alternatives="
 "
 
 if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
-	makedepends+=" musl-obstack"
+	makedepends+=" musl-obstack-devel"
 fi
 
 pre_configure() {

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Update gcompat to 0.9.0, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
                   ` (14 preceding siblings ...)
  2020-07-28  2:58 ` ericonr
@ 2020-07-28  3:02 ` ericonr
  2020-07-28  5:11 ` pullmoll
                   ` (6 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-28  3:02 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 311 bytes --]

New comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/23432#issuecomment-664748127

Comment:
@djames1 is it ok with you that I adopted gcompat? If you'd like to keep maintainership of it, let me know.

@pullmoll are you ok with dynamically linking musl-obstack?

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Update gcompat to 0.9.0, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
                   ` (15 preceding siblings ...)
  2020-07-28  3:02 ` ericonr
@ 2020-07-28  5:11 ` pullmoll
  2020-07-28  5:12 ` [PR REVIEW] " pullmoll
                   ` (5 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: pullmoll @ 2020-07-28  5:11 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 166 bytes --]

New comment by pullmoll on void-packages repository

https://github.com/void-linux/void-packages/pull/23432#issuecomment-664780649

Comment:
@ericonr sure, go ahead.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR REVIEW] Update gcompat to 0.9.0, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
                   ` (16 preceding siblings ...)
  2020-07-28  5:11 ` pullmoll
@ 2020-07-28  5:12 ` pullmoll
  2020-07-28  5:16 ` pullmoll
                   ` (4 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: pullmoll @ 2020-07-28  5:12 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 297 bytes --]

New review comment by pullmoll on void-packages repository

https://github.com/void-linux/void-packages/pull/23432#discussion_r461322302

Comment:
Personally I don't like using $homepage in distfiles because it prevents you from copy+pasting the link to see whether a distfile is still available.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR REVIEW] Update gcompat to 0.9.0, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
                   ` (17 preceding siblings ...)
  2020-07-28  5:12 ` [PR REVIEW] " pullmoll
@ 2020-07-28  5:16 ` pullmoll
  2020-07-28  5:21 ` ericonr
                   ` (3 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: pullmoll @ 2020-07-28  5:16 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 215 bytes --]

New review comment by pullmoll on void-packages repository

https://github.com/void-linux/void-packages/pull/23432#discussion_r461323270

Comment:
Actually I already had $pkgname which prevents this so it's okay :)

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR REVIEW] Update gcompat to 0.9.0, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
                   ` (18 preceding siblings ...)
  2020-07-28  5:16 ` pullmoll
@ 2020-07-28  5:21 ` ericonr
  2020-07-28  5:22 ` ericonr
                   ` (2 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-28  5:21 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 160 bytes --]

New review comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/23432#discussion_r461324835

Comment:
Ok, thanks c:

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Update gcompat to 0.9.0, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
                   ` (19 preceding siblings ...)
  2020-07-28  5:21 ` ericonr
@ 2020-07-28  5:22 ` ericonr
  2020-07-29 17:27 ` djames1
  2020-08-08 14:23 ` [PR PATCH] [Merged]: " Johnnynator
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-28  5:22 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 148 bytes --]

New comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/23432#issuecomment-664783866

Comment:
Thanks!

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Update gcompat to 0.9.0, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
                   ` (20 preceding siblings ...)
  2020-07-28  5:22 ` ericonr
@ 2020-07-29 17:27 ` djames1
  2020-08-08 14:23 ` [PR PATCH] [Merged]: " Johnnynator
  22 siblings, 0 replies; 24+ messages in thread
From: djames1 @ 2020-07-29 17:27 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 187 bytes --]

New comment by djames1 on void-packages repository

https://github.com/void-linux/void-packages/pull/23432#issuecomment-665797770

Comment:
@ericonr Feel free, I do not use void anymore.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR PATCH] [Merged]: Update gcompat to 0.9.0, use dynamic musl-obstack
  2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
                   ` (21 preceding siblings ...)
  2020-07-29 17:27 ` djames1
@ 2020-08-08 14:23 ` Johnnynator
  22 siblings, 0 replies; 24+ messages in thread
From: Johnnynator @ 2020-08-08 14:23 UTC (permalink / raw)
  To: ml


[-- Attachment #1: Type: text/plain, Size: 962 bytes --]

There's a merged pull request on the void-packages repository

Update gcompat to 0.9.0, use dynamic musl-obstack
https://github.com/void-linux/void-packages/pull/23432

Description:
Okay, so this is a biggie PR, and I do need help for making some decisions.

- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet. If I can't get it working soon, I will leave the spotify commit out of this one.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `__strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, back to index

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
2020-07-06 23:54 ` [RFC][WIP] " ericonr
2020-07-07  4:59 ` [PR PATCH] [Updated] " ericonr
2020-07-07 20:48 ` kqo
2020-07-07 20:52 ` ericonr
2020-07-07 20:52 ` [PR PATCH] [Updated] " ericonr
2020-07-07 20:53 ` ericonr
2020-07-09  2:50 ` ericonr
2020-07-09  8:59 ` ericonr
2020-07-09 23:39 ` [PR PATCH] [Updated] " ericonr
2020-07-14 18:25 ` ericonr
2020-07-14 18:26 ` Update gcompat to 0.9.0, " ericonr
2020-07-15 17:03 ` ericonr
2020-07-20  4:48 ` [PR PATCH] [Updated] " ericonr
2020-07-20  4:51 ` ericonr
2020-07-28  2:58 ` ericonr
2020-07-28  3:02 ` ericonr
2020-07-28  5:11 ` pullmoll
2020-07-28  5:12 ` [PR REVIEW] " pullmoll
2020-07-28  5:16 ` pullmoll
2020-07-28  5:21 ` ericonr
2020-07-28  5:22 ` ericonr
2020-07-29 17:27 ` djames1
2020-08-08 14:23 ` [PR PATCH] [Merged]: " Johnnynator

Github messages for voidlinux

Archives are clonable: git clone --mirror http://inbox.vuxu.org/voidlinux-github

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://inbox.vuxu.org/vuxu.github.voidlinux


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git