Recherche avancée

Médias (0)

Mot : - Tags -/presse-papier

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (56)

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
    Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

Sur d’autres sites (5513)

  • Evolution #4302 : favicon, dépendance criante à plugin-dist "images"

    4 mars 2019, par touti touti

    b b a écrit :

    Bien vu, et donc il faudrait copier https://core.spip.net/projects/spip/repository/entry/spip/prive/squelettes/inclure/favicon-head.html dans le plugin-dist filtres_images :)

    Mais oui, bien sûr !
    J’attends quelques jours avant de faire la modif si il y a des récalcitrant·es qui proposent autre chose :)

  • Evolution #3973 : Brancher inc/distant recuperer_url() sur une librairie récente

    20 février 2019, par Eric Camus

    Bonjour,
    Suite à un changement de machine pour nos SPIP (de WIMP vers LAMP (centos)) de nombreux flux RSS ne fonctionnaient plus, la cause : la fonction ’recuperer_url’ !!!.
    J’ai donc réécrit le corps de cette fonction avec la biblio PHP CURL a partir du code dans SPIP 3.2.0 (je sais que je suis en retard d’une version).
    Je vous le livre comme je viens de le finir après un léger debug.

    1. <span class="CodeRay"><span class="keyword">function</span> <span class="function">recuperer_url</span>(<span class="local-variable">$url</span>, <span class="local-variable">$options</span> = <span class="predefined">array</span>()) {
    2.     <span class="local-variable">$default</span> = <span class="predefined">array</span>(
    3.         <span class="string"><span class="delimiter">'</span><span class="content">transcoder</span><span class="delimiter">'</span></span> => <span class="predefined-constant">false</span>,
    4.         <span class="string"><span class="delimiter">'</span><span class="content">methode</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="content">GET</span><span class="delimiter">'</span></span>,
    5.         <span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span> => <span class="predefined-constant">null</span>,
    6.         <span class="string"><span class="delimiter">'</span><span class="content">datas</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    7.         <span class="string"><span class="delimiter">'</span><span class="content">boundary</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    8.         <span class="string"><span class="delimiter">'</span><span class="content">refuser_gz</span><span class="delimiter">'</span></span> => <span class="predefined-constant">false</span>,
    9.         <span class="string"><span class="delimiter">'</span><span class="content">if_modified_since</span><span class="delimiter">'</span></span> => <span class="integer">0</span>,
    10.         <span class="string"><span class="delimiter">'</span><span class="content">uri_referer</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    11.         <span class="string"><span class="delimiter">'</span><span class="content">file</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    12.         <span class="string"><span class="delimiter">'</span><span class="content">follow_location</span><span class="delimiter">'</span></span> => <span class="integer">10</span>,
    13.         <span class="string"><span class="delimiter">'</span><span class="content">version_http</span><span class="delimiter">'</span></span> => _INC_DISTANT_VERSION_HTTP,
    14.     );
    15.     <span class="local-variable">$options</span> = <span class="predefined">array_merge</span>(<span class="local-variable">$default</span>, <span class="local-variable">$options</span>);
    16.     <span class="comment">// copier directement dans un fichier ?</span>
    17.     <span class="local-variable">$copy</span> = <span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">file</span><span class="delimiter">'</span></span>];
    18.  
    19.     <span class="keyword">if</span> (<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">methode</span><span class="delimiter">'</span></span>] == <span class="string"><span class="delimiter">'</span><span class="content">HEAD</span><span class="delimiter">'</span></span>) {
    20.         <span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span>] = <span class="integer">0</span>;
    21.     }
    22.     <span class="keyword">if</span> (<span class="predefined">is_null</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span>])) {
    23.         <span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span>] = <span class="local-variable">$copy</span> ? _COPIE_LOCALE_MAX_SIZE : _INC_DISTANT_MAX_SIZE;
    24.     }
    25.  
    26.     <span class="comment">// Accepter les URLs au format feed:// ou qui ont oublie le http:// ou les urls relatives au protocole</span>
    27.     <span class="local-variable">$url</span> = <span class="predefined">preg_replace</span>(<span class="string"><span class="delimiter">'</span><span class="content">,^feed://,i</span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">'</span><span class="content">http://</span><span class="delimiter">'</span></span>, <span class="local-variable">$url</span>);
    28.     <span class="keyword">if</span> (!tester_url_absolue(<span class="local-variable">$url</span>)) {
    29.         <span class="local-variable">$url</span> = <span class="string"><span class="delimiter">'</span><span class="content">http://</span><span class="delimiter">'</span></span> . <span class="local-variable">$url</span>;
    30.     } <span class="keyword">elseif</span> (<span class="predefined">strncmp</span>(<span class="local-variable">$url</span>, <span class="string"><span class="delimiter">'</span><span class="content">//</span><span class="delimiter">'</span></span>, <span class="integer">2</span>) == <span class="integer">0</span>) {
    31.         <span class="local-variable">$url</span> = <span class="string"><span class="delimiter">'</span><span class="content">http:</span><span class="delimiter">'</span></span> . <span class="local-variable">$url</span>;
    32.     }
    33.  
    34.     <span class="local-variable">$url</span> = url_to_ascii(<span class="local-variable">$url</span>);
    35.  
    36.     <span class="local-variable">$result</span> = <span class="predefined">array</span>(
    37.         <span class="string"><span class="delimiter">'</span><span class="content">status</span><span class="delimiter">'</span></span> => <span class="integer">0</span>,
    38.         <span class="string"><span class="delimiter">'</span><span class="content">headers</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    39.         <span class="string"><span class="delimiter">'</span><span class="content">page</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    40.         <span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span> => <span class="integer">0</span>,
    41.         <span class="string"><span class="delimiter">'</span><span class="content">last_modified</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    42.         <span class="string"><span class="delimiter">'</span><span class="content">location</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    43.         <span class="string"><span class="delimiter">'</span><span class="content">url</span><span class="delimiter">'</span></span> => <span class="local-variable">$url</span>
    44.     );
    45.  
    46.     <span class="local-variable">$pCurl</span>=curl_init(<span class="local-variable">$url</span>);
    47.     curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_HTTP_VERSION</span>,<span class="constant">CURL_HTTP_VERSION_1_1</span>);
    48.     curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_SSL_VERIFYPEER</span>,<span class="predefined-constant">false</span>);
    49.     curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_RETURNTRANSFER</span>,<span class="predefined-constant">true</span>);
    50.     curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_FOLLOWLOCATION</span>,<span class="predefined-constant">true</span>);
    51.     curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_TIMEOUT</span>,<span class="integer">30</span>);  <span class="comment">// timeout 30s</span>
    52.     <span class="keyword">if</span> (!<span class="predefined">empty</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">datas</span><span class="delimiter">'</span></span>])) {  <span class="comment">// des datas</span>
    53.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_POST</span>,<span class="predefined-constant">true</span>);
    54.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_SAFE_UPLOAD</span>,<span class="predefined-constant">true</span>);
    55.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_POSTFIELDS</span>,<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">datas</span><span class="delimiter">'</span></span>]);
    56.         <span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">methode</span><span class="delimiter">'</span></span>]=<span class="string"><span class="delimiter">'</span><span class="content">POST</span><span class="delimiter">'</span></span>;
    57.     }
    58.     <span class="keyword">if</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">methode</span><span class="delimiter">'</span></span>]==<span class="string"><span class="delimiter">'</span><span class="content">HEAD</span><span class="delimiter">'</span></span>) {
    59.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_NOBODY</span>,<span class="predefined-constant">true</span>);
    60.         <span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span>]=<span class="integer">0</span>;  <span class="comment">// pas de taille</span>
    61.         <span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">if_modified_since</span><span class="delimiter">'</span></span>]=<span class="integer">0</span>;  <span class="comment">// pas de date de modif</span>
    62.         <span class="local-variable">$copy</span>=<span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>;  <span class="comment">// pas de copie dans fichier</span>
    63.     }
    64.     <span class="keyword">if</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">if_modified_since</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    65.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_TIMEVALUE</span>,<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">if_modified_since</span><span class="delimiter">'</span></span>]);
    66.     }
    67.     <span class="keyword">if</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    68.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_RANGE</span>,<span class="string"><span class="delimiter">'</span><span class="content">0-</span><span class="delimiter">'</span></span>.<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span>]);
    69.     }
    70.     <span class="keyword">if</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">uri_referer</span><span class="delimiter">'</span></span>]) {
    71.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_REFERER</span>,<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">uri_referer</span><span class="delimiter">'</span></span>]);
    72.     }
    73.     <span class="local-variable">$opt_header</span>=<span class="predefined-constant">true</span>;
    74.     <span class="local-variable">$fheader</span>=<span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>;  <span class="comment">// nom du fichier contenant le header</span>
    75.     <span class="keyword">if</span>(<span class="local-variable">$copy</span>) {
    76.         <span class="local-variable">$fc</span>=<span class="predefined">fopen</span>(<span class="local-variable">$copy</span>,<span class="string"><span class="delimiter">'</span><span class="content">w</span><span class="delimiter">'</span></span>);
    77.         <span class="keyword">if</span>(<span class="local-variable">$fc</span>) {
    78.             <span class="local-variable">$fheader</span>=_DIR_TMP.<span class="predefined">md5</span>(<span class="local-variable">$copy</span>).<span class="string"><span class="delimiter">'</span><span class="content">_head.txt</span><span class="delimiter">'</span></span>;
    79.             <span class="local-variable">$fh</span>=<span class="predefined">fopen</span>(<span class="local-variable">$fheader</span>,<span class="string"><span class="delimiter">'</span><span class="content">w</span><span class="delimiter">'</span></span>);
    80.             <span class="keyword">if</span>(<span class="local-variable">$fh</span>) {
    81.                 curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_FILE</span>,<span class="local-variable">$fc</span>);
    82.                 curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_WRITEHEADER</span>,<span class="local-variable">$fh</span>);
    83.                 <span class="local-variable">$opt_header</span>=<span class="predefined-constant">false</span>;
    84.             }
    85.             <span class="keyword">else</span> {
    86.                 <span class="predefined">fclose</span>(<span class="local-variable">$fc</span>);
    87.             }
    88.         }
    89.     }
    90.     curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_HEADER</span>,<span class="local-variable">$opt_header</span>);
    91.     <span class="local-variable">$cont</span>=curl_exec(<span class="local-variable">$pCurl</span>);
    92.     <span class="local-variable">$info</span>=curl_getinfo(<span class="local-variable">$pCurl</span>);
    93.     curl_close(<span class="local-variable">$pCurl</span>);  <span class="comment">// fermer curl</span>
    94.     <span class="keyword">if</span>(<span class="local-variable">$fc</span>) {
    95.         <span class="predefined">fclose</span>(<span class="local-variable">$fc</span>);  <span class="comment">// fermer fichier</span>
    96.         <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">file</span><span class="delimiter">'</span></span>]=<span class="local-variable">$copy</span>;
    97.     }
    98.     <span class="keyword">if</span>(<span class="local-variable">$fh</span>) {
    99.         <span class="predefined">fclose</span>(<span class="local-variable">$fh</span>);
    100.     }
    101.     <span class="keyword">if</span>(<span class="local-variable">$cont</span>===<span class="predefined-constant">false</span>) {
    102.         spip_log(<span class="string"><span class="delimiter">'</span><span class="content">ECHEC CURL </span><span class="delimiter">'</span></span>.<span class="local-variable">$url</span>,_LOG_ERREUR);
    103.         <span class="keyword">if</span>(<span class="predefined">file_exists</span>(<span class="local-variable">$copy</span>)) <span class="predefined">unlink</span>(<span class="local-variable">$copy</span>);  <span class="comment">// suppr fichier sur erreur</span>
    104.         <span class="keyword">if</span>(<span class="predefined">file_exists</span>(<span class="local-variable">$fheader</span>)) <span class="predefined">unlink</span>(<span class="local-variable">$fheader</span>);
    105.         <span class="keyword">return</span> <span class="predefined-constant">false</span>;
    106.     }
    107.     <span class="comment">// on range le tout dans la var $result</span>
    108.     <span class="local-variable">$body</span>=<span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>;
    109.     <span class="local-variable">$head</span>=<span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>;
    110.     <span class="keyword">if</span>(<span class="local-variable">$cont</span>!==<span class="predefined-constant">true</span>) {  <span class="comment">// cas de demande par fichier</span>
    111.         <span class="keyword">if</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">methode</span><span class="delimiter">'</span></span>]==<span class="string"><span class="delimiter">'</span><span class="content">HEAD</span><span class="delimiter">'</span></span>) {
    112.             <span class="local-variable">$head</span>=<span class="local-variable">$cont</span>;
    113.         }
    114.         <span class="keyword">else</span> {
    115.             <span class="keyword">if</span>(<span class="predefined">isset</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>]) <span class="keyword">and</span> <span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    116.                 <span class="local-variable">$body</span>=<span class="predefined">substr</span>(<span class="local-variable">$cont</span>,-<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>]);
    117.                 <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span>]=<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>];
    118.             }
    119.             <span class="keyword">elseif</span>(<span class="predefined">isset</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>]) <span class="keyword">and</span> <span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    120.                 <span class="local-variable">$body</span>=<span class="predefined">substr</span>(<span class="local-variable">$cont</span>,-<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>]);
    121.                 <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span>]=<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>];
    122.             }
    123.             <span class="keyword">if</span>(<span class="predefined">isset</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">header_size</span><span class="delimiter">'</span></span>]) <span class="keyword">and</span> <span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">header_size</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    124.                 <span class="local-variable">$head</span>=<span class="predefined">substr</span>(<span class="local-variable">$cont</span>,<span class="integer">0</span>,<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">header_size</span><span class="delimiter">'</span></span>]);
    125.                 <span class="keyword">if</span>(<span class="local-variable">$body</span>==<span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>) {  <span class="comment">// cas ou download_content_length=-1 !!!!!!</span>
    126.                     <span class="local-variable">$body</span>=<span class="predefined">substr</span>(<span class="local-variable">$cont</span>,<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">header_size</span><span class="delimiter">'</span></span>]);
    127.                     <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span>]=<span class="predefined">strlen</span>(<span class="local-variable">$body</span>);  <span class="comment">// pare absence</span>
    128.                 }
    129.             }
    130.         }
    131.     }
    132.     <span class="keyword">if</span>(<span class="local-variable">$fheader</span> <span class="keyword">and</span> <span class="predefined">file_exists</span>(<span class="local-variable">$fheader</span>)) {  <span class="comment">// si un fichier de header est fait</span>
    133.         <span class="local-variable">$head</span>=<span class="predefined">file_get_contents</span>(<span class="local-variable">$fheader</span>);
    134.         <span class="predefined">unlink</span>(<span class="local-variable">$fheader</span>);
    135.     }
    136.     <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">status</span><span class="delimiter">'</span></span>]=<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">http_code</span><span class="delimiter">'</span></span>];
    137.     <span class="keyword">if</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">http_code</span><span class="delimiter">'</span></span>]==<span class="integer">206</span>) <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">status</span><span class="delimiter">'</span></span>]=<span class="integer">200</span>;  <span class="comment">// SPIP refuse les partial content alors qu'il les demande</span>
    138.     <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">headers</span><span class="delimiter">'</span></span>]=<span class="local-variable">$head</span>;
    139.     <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">page</span><span class="delimiter">'</span></span>]=<span class="local-variable">$body</span>;
    140.     <span class="keyword">if</span>(<span class="predefined">isset</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>]) <span class="keyword">and</span> <span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    141.         <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span>]=<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>];
    142.     }
    143.     <span class="keyword">elseif</span>(<span class="predefined">isset</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>]) <span class="keyword">and</span> <span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    144.         <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span>]=<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>];
    145.     }
    146.     <span class="keyword">if</span>(<span class="predefined">isset</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">url</span><span class="delimiter">'</span></span>]) <span class="keyword">and</span> <span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">url</span><span class="delimiter">'</span></span>]!=<span class="local-variable">$url</span>) <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">location</span><span class="delimiter">'</span></span>]=<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">url</span><span class="delimiter">'</span></span>];
    147.     <span class="keyword">if</span>(<span class="local-variable">$head</span>) {  <span class="comment">// analyse de head pour info</span>
    148.         <span class="local-variable">$trouve</span>=<span class="predefined">array</span>(<span class="string"><span class="delimiter">'</span><span class="content">Content-Length</span><span class="delimiter">'</span></span>=><span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span>,  <span class="comment">// texte avant : => cle du $result</span>
    149.                      <span class="string"><span class="delimiter">'</span><span class="content">Last-Modified</span><span class="delimiter">'</span></span>=><span class="string"><span class="delimiter">'</span><span class="content">last_modified</span><span class="delimiter">'</span></span>,
    150.                      <span class="string"><span class="delimiter">'</span><span class="content">Accept-Ranges</span><span class="delimiter">'</span></span>=><span class="string"><span class="delimiter">'</span><span class="content">range</span><span class="delimiter">'</span></span>);
    151.         <span class="local-variable">$liste</span>=<span class="predefined">preg_split</span>(<span class="string"><span class="delimiter">'</span><span class="content">/[</span><span class="content">\r</span><span class="content">\n</span><span class="content">]+/</span><span class="delimiter">'</span></span>,<span class="local-variable">$head</span>,-<span class="integer">1</span>,<span class="constant">PREG_SPLIT_NO_EMPTY</span>);
    152.         <span class="keyword">if</span>(<span class="predefined">is_array</span>(<span class="local-variable">$liste</span>)) {
    153.             <span class="local-variable">$liste</span>=<span class="predefined">array_reverse</span>(<span class="local-variable">$liste</span>);
    154.             <span class="keyword">foreach</span>(<span class="local-variable">$liste</span> <span class="keyword">as</span> <span class="local-variable">$l</span>) {  <span class="comment">// premier trouver donc dernier dans le head</span>
    155.                 <span class="local-variable">$lt</span>=<span class="predefined">trim</span>(<span class="local-variable">$l</span>);
    156.                 <span class="keyword">if</span>(<span class="predefined">strlen</span>(<span class="local-variable">$lt</span>)><span class="integer">5</span> <span class="keyword">and</span> <span class="predefined">substr</span>(<span class="local-variable">$lt</span>,<span class="integer">0</span>,<span class="integer">4</span>)==<span class="string"><span class="delimiter">'</span><span class="content">HTTP</span><span class="delimiter">'</span></span>) <span class="keyword">break</span>;  <span class="comment">// on arrete sur derniere entete HTTP ?</span>
    157.                 <span class="local-variable">$item</span>=<span class="predefined">explode</span>(<span class="string"><span class="delimiter">'</span><span class="content">:</span><span class="delimiter">'</span></span>,<span class="local-variable">$lt</span>,<span class="integer">2</span>);
    158.                 <span class="keyword">if</span>(<span class="predefined">isset</span>(<span class="local-variable">$item</span>[<span class="integer">0</span>]) <span class="keyword">and</span> <span class="predefined">isset</span>(<span class="local-variable">$trouve</span>[<span class="local-variable">$item</span>[<span class="integer">0</span>]])) {
    159.                     <span class="local-variable">$result</span>[<span class="local-variable">$trouve</span>[<span class="local-variable">$item</span>[<span class="integer">0</span>]]]=<span class="predefined">trim</span>(<span class="local-variable">$item</span>[<span class="integer">1</span>]);
    160.                     <span class="predefined">unset</span>(<span class="local-variable">$trouve</span>[<span class="local-variable">$item</span>[<span class="integer">0</span>]]);  <span class="comment">// plus d'autre a chercher</span>
    161.                 }
    162.             }
    163.         }
    164.         <span class="comment">// cas particuliers</span>
    165.         <span class="keyword">if</span>(<span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">last_modified</span><span class="delimiter">'</span></span>]) {
    166.             <span class="local-variable">$val</span>=<span class="predefined">strtotime</span>(<span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">last_modified</span><span class="delimiter">'</span></span>]);
    167.             <span class="keyword">if</span>(<span class="local-variable">$val</span>===<span class="predefined-constant">false</span>) {
    168.                 <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">last_modified</span><span class="delimiter">'</span></span>]=<span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>;
    169.             }
    170.             <span class="keyword">else</span> {
    171.                 <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">last_modified</span><span class="delimiter">'</span></span>]=<span class="local-variable">$val</span>;
    172.             }
    173.         }
    174.     }
    175.  
    176.     <span class="comment">// Faut-il l'importer dans notre charset local ?</span>
    177.     <span class="keyword">if</span> (<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">transcoder</span><span class="delimiter">'</span></span>]) {
    178.         include_spip(<span class="string"><span class="delimiter">'</span><span class="content">inc/charsets</span><span class="delimiter">'</span></span>);
    179.         <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">page</span><span class="delimiter">'</span></span>] = transcoder_page(<span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">page</span><span class="delimiter">'</span></span>], <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">headers</span><span class="delimiter">'</span></span>]);
    180.     }
    181.  
    182.     <span class="keyword">return</span> <span class="local-variable">$result</span>;
    183. }
    184. </span>

    Télécharger

    Normalement, ce code doit être compatible avec l’ancienne fonction, il donne en plus en sortie [’range’] qui permet de savoir si un partial content peut être délivré.
    Il ne prend plus en compte les entrées [’refuser_gz’], [’version_http’] et [’boundary’] et l’entrée [’data’] doit être compatible avec celle de ’curl_setopt : CURLOPT_POSTFIELDS’.
    Si des gens veulent la tester et l’améliorer : bienvenue.

    Petit nota : SPIP laisse le fichier créer dans cette fonction ([’file’]) dans le tmp sans le détruire (version de base idem) : accumulation !

  • build ffmpeg on ubuntu : build nasm fails

    6 février 2019, par Rakka Rage

    trying to build ffmpeg on ubuntu 18.10

    https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

    first install dependencies

    sudo apt-get update -qq &amp;&amp; sudo apt-get -y install \
    autoconf \
    automake \
    build-essential \
    cmake \
    git-core \
    libass-dev \
    libfreetype6-dev \
    libsdl2-dev \
    libtool \
    libva-dev \
    libvdpau-dev \
    libvorbis-dev \
    libxcb1-dev \
    libxcb-shm0-dev \
    libxcb-xfixes0-dev \
    pkg-config \
    texinfo \
    wget \
    zlib1g-dev

    then make dirs

    mkdir -p ~/ffmpeg_sources ~/bin

    then build nasm

    cd ~/ffmpeg_sources &amp;&amp; \
    wget https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.bz2 &amp;&amp; \
    tar xjvf nasm-2.13.03.tar.bz2 &amp;&amp; \
    cd nasm-2.13.03 &amp;&amp; \
    ./autogen.sh &amp;&amp; \
    PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" &amp;&amp; \
    make &amp;&amp; \
    make install

    then error

    --2019-02-04 17:45:17--  https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.bz2
    Resolving www.nasm.us (www.nasm.us)... 2607:7c80:54:e::136, 198.137.202.136
    Connecting to www.nasm.us (www.nasm.us)|2607:7c80:54:e::136|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 974491 (952K) [application/x-bzip2]
    Saving to: ‘nasm-2.13.03.tar.bz2’

    nasm-2.13.03.tar.bz2          100%[=================================================>] 951.65K  1.51MB/s    in 0.6s    

    2019-02-04 17:45:18 (1.51 MB/s) - ‘nasm-2.13.03.tar.bz2’ saved [974491/974491]

    nasm-2.13.03/
    nasm-2.13.03/AUTHORS
    nasm-2.13.03/TODO
    nasm-2.13.03/headers/
    nasm-2.13.03/headers/c
    nasm-2.13.03/headers/mac
    nasm-2.13.03/headers/perl
    nasm-2.13.03/headers/doc
    nasm-2.13.03/test/
    nasm-2.13.03/test/objtest.asm
    nasm-2.13.03/test/float8.asm
    nasm-2.13.03/test/avx512cd.asm
    nasm-2.13.03/test/br890790_i.asm
    nasm-2.13.03/test/avx.asm
    nasm-2.13.03/test/pushseg.asm
    nasm-2.13.03/test/br3074517.asm
    nasm-2.13.03/test/inc2.asm
    nasm-2.13.03/test/elfso.asm
    nasm-2.13.03/test/br2222615.asm
    nasm-2.13.03/test/local.asm
    nasm-2.13.03/test/time.asm
    nasm-2.13.03/test/smartalign64.asm
    nasm-2.13.03/test/movimm.asm
    nasm-2.13.03/test/elif.asm
    nasm-2.13.03/test/absolute.asm
    nasm-2.13.03/test/nullfile.asm
    nasm-2.13.03/test/test67.asm
    nasm-2.13.03/test/reldef.asm
    nasm-2.13.03/test/jmp64.asm
    nasm-2.13.03/test/addr64x.asm
    nasm-2.13.03/test/weirdpaste.asm
    nasm-2.13.03/test/newrdwr.asm
    nasm-2.13.03/test/gas2nasm.py
    nasm-2.13.03/test/br3104312.asm
    nasm-2.13.03/test/br3041451.asm
    nasm-2.13.03/test/xchg.asm
    nasm-2.13.03/test/movnti.asm
    nasm-2.13.03/test/br3385573.asm
    nasm-2.13.03/test/testdos.asm
    nasm-2.13.03/test/br3005117.asm
    nasm-2.13.03/test/pcrel.asm
    nasm-2.13.03/test/objexe.asm
    nasm-2.13.03/test/immwarn.asm
    nasm-2.13.03/test/smartalign16.asm
    nasm-2.13.03/test/floatx.asm
    nasm-2.13.03/test/pinsr64.asm
    nasm-2.13.03/test/radix.asm
    nasm-2.13.03/test/gotoff64.asm
    nasm-2.13.03/test/elf64so.asm
    nasm-2.13.03/test/smartalign32.asm
    nasm-2.13.03/test/floatize.asm
    nasm-2.13.03/test/lnxhello.asm
    nasm-2.13.03/test/bisect.sh
    nasm-2.13.03/test/fpu.asm
    nasm-2.13.03/test/ptr.asm
    nasm-2.13.03/test/br2496848.asm
    nasm-2.13.03/test/binexe.asm
    nasm-2.13.03/test/gather.asm
    nasm-2.13.03/test/nop.asm
    nasm-2.13.03/test/br560575.asm
    nasm-2.13.03/test/uscore.asm
    nasm-2.13.03/test/struc.asm
    nasm-2.13.03/test/br3026808.asm
    nasm-2.13.03/test/zerobyte.asm
    nasm-2.13.03/test/avx005.asm
    nasm-2.13.03/test/riprel.pl
    nasm-2.13.03/test/iftoken.asm
    nasm-2.13.03/test/times.asm
    nasm-2.13.03/test/ifmacro.asm
    nasm-2.13.03/test/br3392411.asm
    nasm-2.13.03/test/br3392418.asm
    nasm-2.13.03/test/riprel.asm
    nasm-2.13.03/test/align13.asm
    nasm-2.13.03/test/rdpid.asm
    nasm-2.13.03/test/utf.asm
    nasm-2.13.03/test/br3187743.asm
    nasm-2.13.03/test/movd.asm
    nasm-2.13.03/test/floatb.asm
    nasm-2.13.03/test/inc1.asm
    nasm-2.13.03/test/ilog2.asm
    nasm-2.13.03/test/crc32.asm
    nasm-2.13.03/test/org.asm
    nasm-2.13.03/test/popcnt.asm
    nasm-2.13.03/test/ifelse.asm
    nasm-2.13.03/test/andbyte.asm
    nasm-2.13.03/test/bintest.asm
    nasm-2.13.03/test/imm64.asm
    nasm-2.13.03/test/pinsr16.asm
    nasm-2.13.03/test/ppindirect.asm
    nasm-2.13.03/test/Makefile
    nasm-2.13.03/test/br3392252.asm
    nasm-2.13.03/test/elftest64.c
    nasm-2.13.03/test/hexfp.asm
    nasm-2.13.03/test/alonesym-obj.asm
    nasm-2.13.03/test/br3092924.asm
    nasm-2.13.03/test/br3392442.asm
    nasm-2.13.03/test/loopoffs.asm
    nasm-2.13.03/test/vex.asm
    nasm-2.13.03/test/bcd.asm
    nasm-2.13.03/test/iftoken.pl
    nasm-2.13.03/test/br3189064.asm
    nasm-2.13.03/test/br3392439.asm
    nasm-2.13.03/test/cofftest.c
    nasm-2.13.03/test/floatexp.asm
    nasm-2.13.03/test/mpx-64.asm
    nasm-2.13.03/test/elftest.asm
    nasm-2.13.03/test/avx512pf.asm
    nasm-2.13.03/test/xmm0.asm
    nasm-2.13.03/test/br3392396.asm
    nasm-2.13.03/test/ifenv.asm
    nasm-2.13.03/test/insnlbl.asm
    nasm-2.13.03/test/imm.asm
    nasm-2.13.03/test/performtest.pl
    nasm-2.13.03/test/br2148476.asm
    nasm-2.13.03/test/imul.asm
    nasm-2.13.03/test/br890790.asm
    nasm-2.13.03/test/perf/
    nasm-2.13.03/test/perf/macro.pl
    nasm-2.13.03/test/perf/label.pl
    nasm-2.13.03/test/perf/token.pl
    nasm-2.13.03/test/br3392259.asm
    nasm-2.13.03/test/br3392363.asm
    nasm-2.13.03/test/macroerr.asm
    nasm-2.13.03/test/br560873.asm
    nasm-2.13.03/test/sreg.asm
    nasm-2.13.03/test/br3200749.asm
    nasm-2.13.03/test/xcrypt.asm
    nasm-2.13.03/test/br3109604.asm
    nasm-2.13.03/test/pragma.asm
    nasm-2.13.03/test/objlink.c
    nasm-2.13.03/test/vaesenc.asm
    nasm-2.13.03/test/align13s.asm
    nasm-2.13.03/test/br2030823.asm
    nasm-2.13.03/test/imacro.asm
    nasm-2.13.03/test/timesneg.asm
    nasm-2.13.03/test/macroerr.inc
    nasm-2.13.03/test/vgather.asm
    nasm-2.13.03/test/elftest.c
    nasm-2.13.03/test/floattest.asm
    nasm-2.13.03/test/lar_lsl.asm
    nasm-2.13.03/test/expimp.asm
    nasm-2.13.03/test/testnos3.asm
    nasm-2.13.03/test/r13.asm
    nasm-2.13.03/test/splitea.asm
    nasm-2.13.03/test/mpx.asm
    nasm-2.13.03/test/sha.asm
    nasm-2.13.03/test/fwdopt.asm
    nasm-2.13.03/test/strlen.asm
    nasm-2.13.03/test/a32offs.asm
    nasm-2.13.03/test/vmread.asm
    nasm-2.13.03/test/cv8struc.asm
    nasm-2.13.03/test/aoutso.asm
    nasm-2.13.03/test/relocs.asm
    nasm-2.13.03/test/_version.asm
    nasm-2.13.03/test/br1879590.asm
    nasm-2.13.03/test/tmap.nas
    nasm-2.13.03/test/hle.asm
    nasm-2.13.03/test/br2003451.asm
    nasm-2.13.03/test/float.asm
    nasm-2.13.03/test/mmxsize.asm
    nasm-2.13.03/test/far64.asm
    nasm-2.13.03/test/new
    nasm-2.13.03/test/movd64.asm
    nasm-2.13.03/test/incbin.asm
    nasm-2.13.03/test/inctest.asm
    nasm-2.13.03/test/cofftest.asm
    nasm-2.13.03/test/avx512f.asm
    nasm-2.13.03/test/nasmformat.asm
    nasm-2.13.03/test/prefix66.asm
    nasm-2.13.03/test/paste.asm
    nasm-2.13.03/test/br978756.asm
    nasm-2.13.03/test/br3028880.asm
    nasm-2.13.03/test/optimization.asm
    nasm-2.13.03/test/aouttest.asm
    nasm-2.13.03/test/macro-defaults.asm
    nasm-2.13.03/test/pinsr32.asm
    nasm-2.13.03/test/br3066383.asm
    nasm-2.13.03/test/_file_.asm
    nasm-2.13.03/test/invlpga.asm
    nasm-2.13.03/test/incbin.data
    nasm-2.13.03/test/sha-64.asm
    nasm-2.13.03/test/multisection.asm
    nasm-2.13.03/test/avx2.asm
    nasm-2.13.03/test/avx512er.asm
    nasm-2.13.03/test/dtbcd.asm
    nasm-2.13.03/test/pextrw.asm
    nasm-2.13.03/test/lwp.asm
    nasm-2.13.03/test/br3174983.asm
    nasm-2.13.03/test/changed.asm
    nasm-2.13.03/test/larlsl.asm
    nasm-2.13.03/test/riprel2.asm
    nasm-2.13.03/test/fwdoptpp.asm
    nasm-2.13.03/test/br3058845.asm
    nasm-2.13.03/test/aouttest.c
    nasm-2.13.03/test/br3392392.asm
    nasm-2.13.03/Makefile.in
    nasm-2.13.03/README
    nasm-2.13.03/common/
    nasm-2.13.03/common/common.c
    nasm-2.13.03/autogen.sh
    nasm-2.13.03/version.sed
    nasm-2.13.03/version.pl
    nasm-2.13.03/include/
    nasm-2.13.03/include/insns.h
    nasm-2.13.03/include/hashtbl.h
    nasm-2.13.03/include/error.h
    nasm-2.13.03/include/perfhash.h
    nasm-2.13.03/include/rdoff.h
    nasm-2.13.03/include/nasm.h
    nasm-2.13.03/include/nasmint.h
    nasm-2.13.03/include/ver.h
    nasm-2.13.03/include/raa.h
    nasm-2.13.03/include/md5.h
    nasm-2.13.03/include/opflags.h
    nasm-2.13.03/include/iflag.h
    nasm-2.13.03/include/tables.h
    nasm-2.13.03/include/disp8.h
    nasm-2.13.03/include/rbtree.h
    nasm-2.13.03/include/labels.h
    nasm-2.13.03/include/compiler.h
    nasm-2.13.03/include/strlist.h
    nasm-2.13.03/include/nasmlib.h
    nasm-2.13.03/include/saa.h
    nasm-2.13.03/contrib/
    nasm-2.13.03/contrib/VSrules/
    nasm-2.13.03/contrib/VSrules/nasm.README
    nasm-2.13.03/contrib/VSrules/nasm.rules
    nasm-2.13.03/contrib/MSVC6.txt
    nasm-2.13.03/SubmittingPatches
    nasm-2.13.03/stdlib/
    nasm-2.13.03/stdlib/strlcpy.c
    nasm-2.13.03/stdlib/vsnprintf.c
    nasm-2.13.03/stdlib/snprintf.c
    nasm-2.13.03/stdlib/strnlen.c
    nasm-2.13.03/disasm/
    nasm-2.13.03/disasm/sync.c
    nasm-2.13.03/disasm/disasm.h
    nasm-2.13.03/disasm/ndisasm.c
    nasm-2.13.03/disasm/sync.h
    nasm-2.13.03/disasm/disasm.c
    nasm-2.13.03/nasmlib/
    nasm-2.13.03/nasmlib/md5c.c
    nasm-2.13.03/nasmlib/rbtree.c
    nasm-2.13.03/nasmlib/badenum.c
    nasm-2.13.03/nasmlib/srcfile.c
    nasm-2.13.03/nasmlib/mmap.c
    nasm-2.13.03/nasmlib/zerobuf.c
    nasm-2.13.03/nasmlib/crc64.c
    nasm-2.13.03/nasmlib/saa.c
    nasm-2.13.03/nasmlib/raa.c
    nasm-2.13.03/nasmlib/bsi.c
    nasm-2.13.03/nasmlib/ver.c
    nasm-2.13.03/nasmlib/perfhash.c
    nasm-2.13.03/nasmlib/strlist.c
    nasm-2.13.03/nasmlib/hashtbl.c
    nasm-2.13.03/nasmlib/filename.c
    nasm-2.13.03/nasmlib/file.c
    nasm-2.13.03/nasmlib/path.c
    nasm-2.13.03/nasmlib/file.h
    nasm-2.13.03/nasmlib/realpath.c
    nasm-2.13.03/nasmlib/string.c
    nasm-2.13.03/nasmlib/readnum.c
    nasm-2.13.03/nasmlib/perfhash.pl
    nasm-2.13.03/nasmlib/ilog2.c
    nasm-2.13.03/nasmlib/malloc.c
    nasm-2.13.03/LICENSE
    nasm-2.13.03/ndisasm.txt
    nasm-2.13.03/misc/
    nasm-2.13.03/misc/c16.mac
    nasm-2.13.03/misc/README
    nasm-2.13.03/misc/proc32.ash
    nasm-2.13.03/misc/nasmstab
    nasm-2.13.03/misc/c32.mac
    nasm-2.13.03/misc/Nindent
    nasm-2.13.03/misc/exebin.mac
    nasm-2.13.03/misc/Doxyfile
    nasm-2.13.03/misc/exebin2.mac
    nasm-2.13.03/misc/magic
    nasm-2.13.03/misc/omfdump.c
    nasm-2.13.03/misc/nasm.sl
    nasm-2.13.03/misc/hints.txt
    nasm-2.13.03/misc/scitech.mac
    nasm-2.13.03/misc/crcgen.c
    nasm-2.13.03/misc/myC32.mac
    nasm-2.13.03/misc/genfma.pl
    nasm-2.13.03/misc/xcrcgen.c
    nasm-2.13.03/misc/fmtinsns.pl
    nasm-2.13.03/misc/pmw.bat
    nasm-2.13.03/CHANGES
    nasm-2.13.03/configure
    nasm-2.13.03/ndisasm.1
    nasm-2.13.03/tools/
    nasm-2.13.03/tools/tag-release
    nasm-2.13.03/tools/syncfiles.pl
    nasm-2.13.03/tools/cleanpatch
    nasm-2.13.03/tools/cleanfile
    nasm-2.13.03/tools/release
    nasm-2.13.03/tools/mkdep.pl
    nasm-2.13.03/INSTALL
    nasm-2.13.03/install-sh
    nasm-2.13.03/Mkfiles/
    nasm-2.13.03/Mkfiles/README
    nasm-2.13.03/Mkfiles/openwcom.mak
    nasm-2.13.03/Mkfiles/msvc.mak
    nasm-2.13.03/version
    nasm-2.13.03/nasm.txt
    nasm-2.13.03/nsis/
    nasm-2.13.03/nsis/version.nsh
    nasm-2.13.03/nsis/nasm-un.ico
    nasm-2.13.03/nsis/NASMMultiUser.nsh
    nasm-2.13.03/nsis/getpearch.pl
    nasm-2.13.03/nsis/nasm.nsi
    nasm-2.13.03/nsis/nasm.ico
    nasm-2.13.03/macros/
    nasm-2.13.03/macros/macros.pl
    nasm-2.13.03/macros/standard.mac
    nasm-2.13.03/macros/ifunc.mac
    nasm-2.13.03/macros/altreg.mac
    nasm-2.13.03/macros/macros.c
    nasm-2.13.03/macros/smartalign.mac
    nasm-2.13.03/macros/fp.mac
    nasm-2.13.03/config/
    nasm-2.13.03/config/watcom.h
    nasm-2.13.03/config/msvc.h
    nasm-2.13.03/config/config.h.in
    nasm-2.13.03/config/unknown.h
    nasm-2.13.03/nasm.1
    nasm-2.13.03/asm/
    nasm-2.13.03/asm/preproc.h
    nasm-2.13.03/asm/preproc-nop.c
    nasm-2.13.03/asm/tokens.h
    nasm-2.13.03/asm/pptok.h
    nasm-2.13.03/asm/stdscan.c
    nasm-2.13.03/asm/nasm.c
    nasm-2.13.03/asm/pragma.c
    nasm-2.13.03/asm/pptok.dat
    nasm-2.13.03/asm/float.h
    nasm-2.13.03/asm/pptok.pl
    nasm-2.13.03/asm/directiv.dat
    nasm-2.13.03/asm/error.c
    nasm-2.13.03/asm/labels.c
    nasm-2.13.03/asm/eval.h
    nasm-2.13.03/asm/directiv.h
    nasm-2.13.03/asm/assemble.h
    nasm-2.13.03/asm/parser.h
    nasm-2.13.03/asm/assemble.c
    nasm-2.13.03/asm/listing.c
    nasm-2.13.03/asm/tokhash.c
    nasm-2.13.03/asm/preproc.c
    nasm-2.13.03/asm/exprdump.c
    nasm-2.13.03/asm/pptok.c
    nasm-2.13.03/asm/parser.c
    nasm-2.13.03/asm/quote.h
    nasm-2.13.03/asm/quote.c
    nasm-2.13.03/asm/segalloc.c
    nasm-2.13.03/asm/tokens.dat
    nasm-2.13.03/asm/float.c
    nasm-2.13.03/asm/exprlib.c
    nasm-2.13.03/asm/phash.pl
    nasm-2.13.03/asm/directiv.c
    nasm-2.13.03/asm/listing.h
    nasm-2.13.03/asm/directbl.c
    nasm-2.13.03/asm/stdscan.h
    nasm-2.13.03/asm/rdstrnum.c
    nasm-2.13.03/asm/pptok.ph
    nasm-2.13.03/asm/tokhash.pl
    nasm-2.13.03/asm/strfunc.c
    nasm-2.13.03/asm/eval.c
    nasm-2.13.03/rdoff/
    nasm-2.13.03/rdoff/rdf2bin.1
    nasm-2.13.03/rdoff/segtab.c
    nasm-2.13.03/rdoff/rdf2srec.1
    nasm-2.13.03/rdoff/rdf2ihx.1
    nasm-2.13.03/rdoff/rdlib.h
    nasm-2.13.03/rdoff/test/
    nasm-2.13.03/rdoff/test/rdftest1.asm
    nasm-2.13.03/rdoff/test/rdtlib.asm
    nasm-2.13.03/rdoff/test/makelib.sh
    nasm-2.13.03/rdoff/test/rdftest2.asm
    nasm-2.13.03/rdoff/test/Makefile
    nasm-2.13.03/rdoff/test/rdfseg.asm
    nasm-2.13.03/rdoff/test/testlib.asm
    nasm-2.13.03/rdoff/test/rdfseg2.asm
    nasm-2.13.03/rdoff/test/rdtmain.asm
    nasm-2.13.03/rdoff/rdf2ith.1
    nasm-2.13.03/rdoff/rdlib.c
    nasm-2.13.03/rdoff/README
    nasm-2.13.03/rdoff/symtab.c
    nasm-2.13.03/rdoff/segtab.h
    nasm-2.13.03/rdoff/hash.c
    nasm-2.13.03/rdoff/ldrdf.1
    nasm-2.13.03/rdoff/rdfutils.h
    nasm-2.13.03/rdoff/rdflib.1
    nasm-2.13.03/rdoff/rdf2com.1
    nasm-2.13.03/rdoff/rdoff.c
    nasm-2.13.03/rdoff/ldsegs.h
    nasm-2.13.03/rdoff/rdfdump.1
    nasm-2.13.03/rdoff/rdlar.c
    nasm-2.13.03/rdoff/rdf2bin.c
    nasm-2.13.03/rdoff/symtab.h
    nasm-2.13.03/rdoff/collectn.c
    nasm-2.13.03/rdoff/rdfload.h
    nasm-2.13.03/rdoff/rdflib.c
    nasm-2.13.03/rdoff/rdfload.c
    nasm-2.13.03/rdoff/ldrdf.c
    nasm-2.13.03/rdoff/rdx.1
    nasm-2.13.03/rdoff/rdx.c
    nasm-2.13.03/rdoff/collectn.h
    nasm-2.13.03/rdoff/rdlar.h
    nasm-2.13.03/rdoff/hash.h
    nasm-2.13.03/rdoff/rdfdump.c
    nasm-2.13.03/rdoff/doc/
    nasm-2.13.03/rdoff/doc/Makefile
    nasm-2.13.03/rdoff/doc/v1-v2.txt
    nasm-2.13.03/rdoff/doc/rdoff.texi
    nasm-2.13.03/version.mac
    nasm-2.13.03/output/
    nasm-2.13.03/output/legacy.c
    nasm-2.13.03/output/elf.h
    nasm-2.13.03/output/outbin.mac
    nasm-2.13.03/output/nulldbg.c
    nasm-2.13.03/output/outform.h
    nasm-2.13.03/output/stabs.h
    nasm-2.13.03/output/outobj.c
    nasm-2.13.03/output/codeview.c
    nasm-2.13.03/output/outform.c
    nasm-2.13.03/output/outlib.c
    nasm-2.13.03/output/outbin.c
    nasm-2.13.03/output/outieee.c
    nasm-2.13.03/output/outas86.mac
    nasm-2.13.03/output/outmacho.mac
    nasm-2.13.03/output/outaout.c
    nasm-2.13.03/output/outaout.mac
    nasm-2.13.03/output/outdbg.c
    nasm-2.13.03/output/outmacho.c
    nasm-2.13.03/output/outrdf2.c
    nasm-2.13.03/output/nullout.c
    nasm-2.13.03/output/outlib.h
    nasm-2.13.03/output/outobj.mac
    nasm-2.13.03/output/outcoff.c
    nasm-2.13.03/output/outcoff.mac
    nasm-2.13.03/output/outrdf2.mac
    nasm-2.13.03/output/outelf.h
    nasm-2.13.03/output/pecoff.h
    nasm-2.13.03/output/outrdf.mac
    nasm-2.13.03/output/dwarf.h
    nasm-2.13.03/output/outelf.c
    nasm-2.13.03/output/outas86.c
    nasm-2.13.03/output/outelf.mac
    nasm-2.13.03/perllib/
    nasm-2.13.03/perllib/random_sv_vectors.ph
    nasm-2.13.03/perllib/gensv.pl
    nasm-2.13.03/perllib/phash.ph
    nasm-2.13.03/perllib/crc64.ph
    nasm-2.13.03/configure.ac
    nasm-2.13.03/aclocal.m4
    nasm-2.13.03/ChangeLog
    nasm-2.13.03/nasm.spec.in
    nasm-2.13.03/x86/
    nasm-2.13.03/x86/insnsi.h
    nasm-2.13.03/x86/regvals.c
    nasm-2.13.03/x86/insnsa.c
    nasm-2.13.03/x86/insns.pl
    nasm-2.13.03/x86/regs.h
    nasm-2.13.03/x86/regflags.c
    nasm-2.13.03/x86/disp8.c
    nasm-2.13.03/x86/regdis.h
    nasm-2.13.03/x86/insnsn.c
    nasm-2.13.03/x86/iflag.c
    nasm-2.13.03/x86/insnsb.c
    nasm-2.13.03/x86/regs.pl
    nasm-2.13.03/x86/regdis.c
    nasm-2.13.03/x86/insns-iflags.ph
    nasm-2.13.03/x86/insnsd.c
    nasm-2.13.03/x86/regs.c
    nasm-2.13.03/x86/iflaggen.h
    nasm-2.13.03/x86/regs.dat
    nasm-2.13.03/x86/insns.dat
    nasm-2.13.03/nasm.spec
    nasm-2.13.03/version.h
    nasm-2.13.03/version.mak
    nasm-2.13.03/nasm.spec.sed
    nasm-2.13.03/doc/
    nasm-2.13.03/doc/Makefile.in
    nasm-2.13.03/doc/nasmdoc.css
    nasm-2.13.03/doc/README
    nasm-2.13.03/doc/findfont.ph
    nasm-2.13.03/doc/pswidth.ph
    nasm-2.13.03/doc/pspdf.pl
    nasm-2.13.03/doc/head.ps
    nasm-2.13.03/doc/rdsrc.pl
    nasm-2.13.03/doc/Makefile
    nasm-2.13.03/doc/ttfmetrics.ph
    nasm-2.13.03/doc/genps.pl
    nasm-2.13.03/doc/inslist.pl
    nasm-2.13.03/doc/opt_var.txt
    nasm-2.13.03/doc/nasmlogo.eps
    nasm-2.13.03/doc/afmmetrics.ph
    nasm-2.13.03/doc/local.css
    nasm-2.13.03/doc/internal.doc
    nasm-2.13.03/doc/changes.src
    nasm-2.13.03/doc/nasmdoc.src
    nasm-2.13.03/doc/psfonts.ph
    nasm-2.13.03/doc/nasmlogw.png
    + autoheader
    + autoconf
    + rm -rf autom4te.cache config.log config.status
    + rm -f Makefile rdoff/Makefile doc/Makefile
    + rm -f config.h.in config.h config/config.h
    checking for gcc... gcc
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking how to run the C preprocessor... gcc -E
    checking for grep that handles long lines and -e... /bin/grep
    checking for egrep... /bin/grep -E
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking minix/config.h usability... no
    checking minix/config.h presence... no
    checking for minix/config.h... no
    checking whether it is safe to define __EXTENSIONS__... yes
    checking for special C compiler options needed for large files... no
    checking for _FILE_OFFSET_BITS value needed for large files... no
    checking for gcc... (cached) gcc
    checking whether we are using the GNU C compiler... (cached) yes
    checking whether gcc accepts -g... (cached) yes
    checking for gcc option to accept ISO C89... (cached) none needed
    checking for gcc option to accept ISO C99... none needed
    checking for gcc option to accept ISO Standard C... (cached) none needed
    checking whether ln -s works... yes
    checking whether make sets $(MAKE)... yes
    checking for a BSD-compatible install... /usr/bin/install -c
    checking for suffix of library files... a
    checking for an ANSI C-conforming const... yes
    checking for inline... inline
    checking for C/C++ restrict keyword... __restrict
    checking for size_t... yes
    checking whether byte ordering is bigendian... no
    checking if gcc accepts -fwrapv... yes
    checking if gcc accepts -U__STRICT_ANSI__... yes
    checking if gcc accepts -fno-common... yes
    checking for nroff... nroff
    checking for asciidoc... no
    checking for xmlto... no
    configure: WARNING: No asciidoc package found
    configure: WARNING: No xmlto package found
    checking for ar... ar
    checking for ranlib... ranlib
    checking for strip... strip
    checking for ANSI C header files... (cached) yes
    checking for inttypes.h... (cached) yes
    checking for strings.h... (cached) yes
    checking for stdbool.h that conforms to C99... yes
    checking for _Bool... yes
    checking stdnoreturn.h usability... yes
    checking stdnoreturn.h presence... yes
    checking for stdnoreturn.h... yes
    checking io.h usability... no
    checking io.h presence... no
    checking for io.h... no
    checking fcntl.h usability... yes
    checking fcntl.h presence... yes
    checking for fcntl.h... yes
    checking for unistd.h... (cached) yes
    checking sys/param.h usability... yes
    checking sys/param.h presence... yes
    checking for sys/param.h... yes
    checking sys/mman.h usability... yes
    checking sys/mman.h presence... yes
    checking for sys/mman.h... yes
    checking for sys/types.h... (cached) yes
    checking for sys/stat.h... (cached) yes
    checking for strcasecmp... yes
    checking for stricmp... no
    checking for strncasecmp... yes
    checking for strnicmp... no
    checking for strsep... yes
    checking for strnlen... yes
    checking for getuid... yes
    checking for getgid... yes
    checking for realpath... yes
    checking for canonicalize_file_name... yes
    checking for _fullpath... no
    checking for pathconf... yes
    checking for _LARGEFILE_SOURCE value needed for large files... no
    checking for _fseeki64... no
    checking for ftruncate... yes
    checking for _chsize... no
    checking for _chsize_s... no
    checking for fileno... yes
    checking for _fileno... no
    checking for _filelengthi64... no
    checking for stdlib.h... (cached) yes
    checking for unistd.h... (cached) yes
    checking for sys/param.h... (cached) yes
    checking for getpagesize... yes
    checking for working mmap... yes
    checking for getpagesize... (cached) yes
    checking for sysconf... yes
    checking for access... yes
    checking for _access... no
    checking for faccessat... yes
    checking for __builtin_clz... yes
    checking for __builtin_clzl... yes
    checking for __builtin_clzll... yes
    checking for __builtin_expect... yes
    checking for vsnprintf... yes
    checking for _vsnprintf... no
    checking for snprintf... yes
    checking for _snprintf... no
    checking for strlcpy... no
    checking for struct _stati64... no
    checking for struct stat... yes
    checking for stat... yes
    checking for _stati64... no
    checking for fstat... yes
    checking for _fstati64... no
    checking whether strcasecmp is declared... yes
    checking whether stricmp is declared... no
    checking whether strncasecmp is declared... yes
    checking whether strnicmp is declared... no
    checking whether strsep is declared... yes
    checking whether strlcpy is declared... no
    checking whether strnlen is declared... yes
    checking for uintptr_t... yes
    checking if gcc accepts -Werror=attributes... yes
    checking if gcc supports the noreturn function attribute... yes
    checking if gcc supports the returns_nonnull function attribute... yes
    checking if gcc supports the malloc function attribute... yes
    checking if gcc supports the alloc_size function attribute... yes
    checking if gcc supports the format function attribute... yes
    checking if gcc supports the const function attribute... yes
    checking if gcc supports the pure function attribute... yes
    checking if gcc supports the error function attribute... yes
    checking if gcc accepts -W... yes
    checking if gcc accepts -Wall... yes
    checking if gcc accepts -pedantic... yes
    checking if gcc accepts -Werror=unknown-warning-option... no
    checking if gcc accepts -Wpedantic-ms-format... no
    checking if gcc accepts -Wc90-c99-compat... yes
    checking if gcc accepts -Wlong-long... yes
    checking if gcc accepts -Werror=implicit... yes
    checking if gcc accepts -Werror=missing-braces... yes
    checking if gcc accepts -Werror=return-type... yes
    checking if gcc accepts -Werror=trigraphs... yes
    checking if gcc accepts -Werror=pointer-arith... yes
    checking if gcc accepts -Werror=strict-prototypes... no
    checking if gcc accepts -Werror=missing-prototypes... yes
    checking if gcc accepts -Werror=missing-declarations... yes
    checking if gcc accepts -Werror=comment... yes
    checking if gcc accepts -Werror=vla... yes
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating doc/Makefile
    config.status: creating config/config.h
    config.status: executing default-1 commands
    gcc -c -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common -Werror=attributes -W -Wall -pedantic -Wc90-c99-compat -Wno-long-long -Werror=implicit -Werror=missing-braces -Werror=return-type -Werror=trigraphs -Werror=pointer-arith -Werror=missing-prototypes -Werror=missing-declarations -Werror=comment -Werror=vla -DHAVE_CONFIG_H -I. -I. -I./include -I./include -I./x86 -I./x86 -I./asm -I./asm -I./disasm -I./disasm -I./output -I./output -o asm/nasm.o asm/nasm.c
    In file included from ./include/nasm.h:46,
                   from asm/nasm.c:47:
    ./include/nasmlib.h:194:1: error: ‘pure’ attribute on function returning ‘void’ [-Werror=attributes]
    void pure_func seg_init(void);
    ^~~~
    cc1: some warnings being treated as errors
    make: *** [Makefile:75: asm/nasm.o] Error 1

    how can a build this ? disable warnings as errors somehow or ? idk
    please and thanks