diff options
author | Cem Keylan <cem@ckyln.com> | 2019-12-09 19:17:24 +0300 |
---|---|---|
committer | Cem Keylan <cem@ckyln.com> | 2019-12-09 19:17:24 +0300 |
commit | 03423e0583057cbe5a16f8439183e2dbc0e8dd7c (patch) | |
tree | 81fe3ba69d94146f83fb5541d1fb2da0ac4eac08 | |
download | repository-03423e0583057cbe5a16f8439183e2dbc0e8dd7c.tar.gz |
secondary commit
821 files changed, 14259 insertions, 0 deletions
diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..f2c0afad --- /dev/null +++ b/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2019 Cem Keylan +Copyright (c) 2019 Dylan Araps + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. @@ -0,0 +1,18 @@ +Carbs Linux Repository +====================== + +Official Repository of Carbs Linux + +* Forked from Kiss Linux Repositories to fit Carbs Linux + + +List of Changes +--------------- + +Until the repository is different enough, there +will be a list of changes here + +* Removed musl libc and package fixes of musl +* Removed baseinit +* Added own baselayout configuration +* Added own busybox configuration diff --git a/core/baselayout/build b/core/baselayout/build new file mode 100755 index 00000000..29d4fabb --- /dev/null +++ b/core/baselayout/build @@ -0,0 +1,60 @@ +#!/bin/sh -e + +# Setup base directories. +for d in boot dev etc home mnt usr var opt run; do + install -dm 755 "$1/$d" +done + +install -dm 555 "$1/proc" +install -dm 555 "$1/sys" +install -dm 0750 "$1/root" +install -dm 1777 "$1/tmp" + +# Setup /usr hierarchy. +for d in bin include lib lib32 share src; do + install -d -m755 "$1"/usr/"$d" +done + +# Setup manpages directories. +for d in 1 2 3 4 5 6 7 8; do + install -dm 755 "$1/usr/share/man/man$d" +done + +# Add symlinks. +ln -s usr/bin "$1/bin" +ln -s usr/bin "$1/sbin" +ln -s bin "$1/usr/sbin" +ln -s usr/lib "$1/lib" +ln -s usr/lib "$1/lib64" +ln -s lib "$1/usr/lib64" + +# Setup /var. +for d in cache local opt log/old lib/misc empty service; do + install -dm 755 "$1/var/$d" +done + +install -dm 1777 "$1/var/tmp" +install -dm 1777 "$1/var/spool/mail" + +ln -s spool/mail "$1/var/mail" +ln -s ../run "$1/var/run" +ln -s ../run/lock "$1/var/lock" + +# Setup /usr/local (usually for any programs installed outside package manager). +for d in bin etc games include lib man sbin share src; do + install -dm 755 "$1/usr/local/$d" +done + +ln -s ../man "$1/usr/local/share/man" + +# /etc skeleton files. +for f in fstab group host.conf hosts issue os-release \ + passwd profile securetty shells mime.types; do + install -m 644 "$f" "$1/etc" +done + +for f in crypttab shadow; do + install -m 600 "$f" "$1/etc" +done + +ln -s /proc/self/mounts "$1/etc/mtab" diff --git a/core/baselayout/checksums b/core/baselayout/checksums new file mode 100644 index 00000000..cc764b89 --- /dev/null +++ b/core/baselayout/checksums @@ -0,0 +1,13 @@ +87f84ab7389df20851fc596fd4e843ec crypttab +e33f6dfdd61978fcb3ddf1431286e05a fstab +f070f3a22cd7433eb61d1ee1c7744c76 group +e946a911b1dc8bb033d035132806915c host.conf +8b448363d1deeb95e4cd6cfafe53983e hosts +745737da818c160ff9bb6989f9d84e9f issue +b3c676e8b1035157c8c9cd9807e98edc mime.types +1357ce144e8de1a19d3c9e2d9e7b8b63 os-release +5313edb55673b79318e192dc2cf67cdd passwd +f89a899e0cec6aeb05a6ff64a3e8d881 profile +38ce61ba07c1238c0e2dc678339d81f0 securetty +f64466dd77c7bec37a8b47681468211a shadow +11c89a8d881b828e02a36cac08b4cc23 shells diff --git a/core/baselayout/depends b/core/baselayout/depends new file mode 100644 index 00000000..12bb11ef --- /dev/null +++ b/core/baselayout/depends @@ -0,0 +1,3 @@ +busybox +kiss +musl diff --git a/core/baselayout/files/crypttab b/core/baselayout/files/crypttab new file mode 100644 index 00000000..196b0d6e --- /dev/null +++ b/core/baselayout/files/crypttab @@ -0,0 +1,13 @@ +# crypttab: mappings for encrypted partitions +# +# Each mapped device will be created in /dev/mapper, so your /etc/fstab +# should use the /dev/mapper/<name> paths for encrypted devices. +# +# NOTE: Do not list your root (/) partition here. + +# <name> <device> <password> <options> +# home /dev/hda4 /etc/mypassword1 +# data1 /dev/hda3 /etc/mypassword2 +# data2 /dev/hda5 /etc/cryptfs.key +# swap /dev/hdx4 /dev/urandom swap,cipher=aes-cbc-essiv:sha256,size=256 +# vol /dev/hdb7 none diff --git a/core/baselayout/files/fstab b/core/baselayout/files/fstab new file mode 100644 index 00000000..903906d2 --- /dev/null +++ b/core/baselayout/files/fstab @@ -0,0 +1,4 @@ +# Static information about the filesystems. +# See fstab(5) for details. + +# <file system> <dir> <type> <options> <dump> <pass> diff --git a/core/baselayout/files/group b/core/baselayout/files/group new file mode 100644 index 00000000..0797f31c --- /dev/null +++ b/core/baselayout/files/group @@ -0,0 +1,27 @@ +root:x:0: +bin:x:1: +sys:x:2: +kmem:x:3: +wheel:x:4: +tty:x:5: +tape:x:6: +daemon:x:7: +floppy:x:8: +disk:x:9: +lp:x:10: +dialout:x:11: +audio:x:12: +video:x:13: +utmp:x:14: +adm:x:15: +cdrom:x:16: +optical:x:17: +mail:x:18: +storage:x:19: +scanner:x:20: +network:x:21: +kvm:x:24: +input:x:25: +nogroup:x:99: +users:x:100: +xbuilder:x:101: diff --git a/core/baselayout/files/host.conf b/core/baselayout/files/host.conf new file mode 100644 index 00000000..db09a07b --- /dev/null +++ b/core/baselayout/files/host.conf @@ -0,0 +1,4 @@ +# /etc/host.conf +# See host.conf(5) for details. + +multi on diff --git a/core/baselayout/files/hosts b/core/baselayout/files/hosts new file mode 100644 index 00000000..e08b4376 --- /dev/null +++ b/core/baselayout/files/hosts @@ -0,0 +1,10 @@ + +# +# /etc/hosts: static lookup table for host names +# + +#<ip-address> <hostname.domain.org> <hostname> +127.0.0.1 localhost.localdomain localhost +::1 localhost.localdomain localhost ip6-localhost + +# EOF diff --git a/core/baselayout/files/issue b/core/baselayout/files/issue new file mode 100644 index 00000000..3567c3ae --- /dev/null +++ b/core/baselayout/files/issue @@ -0,0 +1 @@ +Carbs Linux \r (\l) diff --git a/core/baselayout/files/mime.types b/core/baselayout/files/mime.types new file mode 100644 index 00000000..8af0a167 --- /dev/null +++ b/core/baselayout/files/mime.types @@ -0,0 +1,1918 @@ +application/1d-interleaved-parityfec +application/3gpp-ims+xml +application/CSTAdata+xml +application/EDI-Consent +application/EDI-X12 +application/EDIFACT +application/H224 +application/activemessage +application/andrew-inset ez +application/annodex anx +application/applefile +application/applixware aw +application/atom+xml atom +application/atomcat+xml atomcat +application/atomdeleted+xml +application/atomicmail +application/atomserv+xml atomsrv +application/atomsvc+xml atomsvc +application/auth-policy+xml +application/batch-SMTP +application/batch-smtp +application/bbolin lin +application/beep+xml +application/calendar+xml +application/cals-1840 +application/ccmp+xml +application/ccxml+xml ccxml +application/cdmi-capability cdmia +application/cdmi-container cdmic +application/cdmi-domain cdmid +application/cdmi-object cdmio +application/cdmi-queue cdmiq +application/cea-2018+xml +application/cellml+xml +application/cfw +application/cnrp+xml +application/commonground +application/conference-info+xml +application/cpl+xml +application/csta+xml +application/cstadata+xml +application/cu-seeme cu +application/cybercash +application/davmount+xml davmount +application/dca-rft +application/dec-dx +application/dialog-info+xml +application/dicom dcm +application/dns +application/docbook+xml dbk +application/dskpp+xml +application/dsptype tsp +application/dssc+der dssc +application/dssc+xml xdssc +application/dvcs +application/ecmascript ecma es +application/edi-consent +application/edi-x12 +application/edifact +application/emma+xml emma +application/epp+xml +application/epub+zip epub +application/eshop +application/example +application/exi exi +application/fastinfoset +application/fastsoap +application/fdt+xml +application/fits +application/font-tdpfr pfr +application/framework-attributes+xml +application/futuresplash spl +application/ghostview +application/gml+xml gml +application/gpx+xml gpx +application/gxf gxf +application/gzip +application/h224 +application/held+xml +application/hta hta +application/http +application/hyperstudio stk +application/ibe-key-request+xml +application/ibe-pkg-reply+xml +application/ibe-pp-data +application/iges +application/im-iscomposing+xml +application/index +application/index.cmd +application/index.obj +application/index.response +application/index.vnd +application/inkml+xml ink inkml +application/iotp +application/ipfix ipfix +application/ipp +application/isup +application/java-archive jar +application/java-serialized-object ser +application/java-vm class +application/javascript js +application/json json +application/jsonml+json jsonml +application/kpml-request+xml +application/kpml-response+xml +application/link-format +application/lost+xml lostxml +application/lostsync+xml +application/m3g m3g +application/mac-binhex40 hqx +application/mac-compactpro cpt +application/macwriteii +application/mads+xml mads +application/marc mrc +application/marcxml+xml mrcx +application/mathematica ma mb nb nbp +application/mathml+xml mathml +application/mathml-content+xml +application/mathml-presentation+xml +application/mbms-associated-procedure-description+xml +application/mbms-deregister+xml +application/mbms-envelope+xml +application/mbms-msk+xml +application/mbms-msk-response+xml +application/mbms-protection-description+xml +application/mbms-reception-report+xml +application/mbms-register+xml +application/mbms-register-response+xml +application/mbms-user-service-description+xml +application/mbox mbox +application/media-policy-dataset+xml +application/media_control+xml +application/mediaservercontrol+xml mscml +application/metalink+xml metalink +application/metalink4+xml meta4 +application/mets+xml mets +application/mikey +application/mods+xml mods +application/moss-keys +application/moss-signature +application/mosskey-data +application/mosskey-request +application/mp21 m21 mp21 +application/mp4 mp4s +application/mpeg4-generic +application/mpeg4-iod +application/mpeg4-iod-xmt +application/ms-tnef +application/msaccess mdb +application/msc-ivr+xml +application/msc-mixer+xml +application/msword doc dot +application/mxf mxf +application/nasdata +application/news-checkgroups +application/news-groupinfo +application/news-message-id +application/news-transmission +application/nlsml+xml +application/nss +application/ocsp-request +application/ocsp-response +application/octet-stream bin bpk deploy dist distz dmg dms dump elc iso lha lrf lzh mar pkg so +application/oda oda +application/oebps-package+xml opf +application/ogg ogg ogx +application/omdoc+xml omdoc +application/onenote one onepkg onetmp onetoc onetoc2 +application/oxps oxps +application/parityfec +application/patch-ops-error+xml xer +application/pdf pdf +application/pgp-encrypted asc pgp +application/pgp-keys key +application/pgp-signature asc pgp sig +application/pics-rules prf +application/pidf+xml +application/pidf-diff+xml +application/pkcs10 p10 +application/pkcs7-mime p7c p7m +application/pkcs7-signature p7s +application/pkcs8 p8 +application/pkix-attr-cert ac +application/pkix-cert cer +application/pkix-crl crl +application/pkix-pkipath pkipath +application/pkixcmp pki +application/pls+xml pls +application/poc-settings+xml +application/postscript ai eps eps2 eps3 epsf epsi ps +application/prs.alvestrand.titrax-sheet +application/prs.cww cww +application/prs.nprend +application/prs.plucker +application/prs.rdf-xml-crypt +application/prs.xsf+xml +application/pskc+xml pskcxml +application/qsig +application/raptorfec +application/rar rar +application/rdf+xml rdf +application/reginfo+xml rif +application/relax-ng-compact-syntax rnc +application/remote-printing +application/resource-lists+xml rl +application/resource-lists-diff+xml rld +application/riscos +application/rlmi+xml +application/rls-services+xml rs +application/rpki-ghostbusters gbr +application/rpki-manifest mft +application/rpki-roa roa +application/rpki-updown +application/rsd+xml rsd +application/rss+xml rss +application/rtf rtf +application/rtx +application/samlassertion+xml +application/samlmetadata+xml +application/sbml+xml sbml +application/scvp-cv-request scq +application/scvp-cv-response scs +application/scvp-vp-request spq +application/scvp-vp-response spp +application/sdp sdp +application/sep+xml +application/set-payment +application/set-payment-initiation setpay +application/set-registration +application/set-registration-initiation setreg +application/sgml +application/sgml-open-catalog +application/shf+xml shf +application/sieve +application/simple-filter+xml +application/simple-message-summary +application/simpleSymbolContainer +application/simplesymbolcontainer +application/sla stl +application/slate +application/smil smi smil +application/smil+xml smi smil +application/smpte336m +application/soap+fastinfoset +application/soap+xml +application/sparql-query rq +application/sparql-results+xml srx +application/spirits-event+xml +application/srgs gram +application/srgs+xml grxml +application/sru+xml sru +application/ssdl+xml ssdl +application/ssml+xml ssml +application/tamp-apex-update +application/tamp-apex-update-confirm +application/tamp-community-update +application/tamp-community-update-confirm +application/tamp-error +application/tamp-sequence-adjust +application/tamp-sequence-adjust-confirm +application/tamp-status-query +application/tamp-status-response +application/tamp-update +application/tamp-update-confirm +application/tei+xml tei teicorpus +application/thraud+xml tfi +application/timestamp-query +application/timestamp-reply +application/timestamped-data tsd +application/tve-trigger +application/ulpfec +application/vcard+xml +application/vemmi +application/vividence.scriptfile +application/vnd.3M.Post-it-Notes +application/vnd.3gpp.bsf+xml +application/vnd.3gpp.pic-bw-large plb +application/vnd.3gpp.pic-bw-small psb +application/vnd.3gpp.pic-bw-var pvb +application/vnd.3gpp.sms +application/vnd.3gpp2.bcmcsinfo+xml +application/vnd.3gpp2.sms +application/vnd.3gpp2.tcap tcap +application/vnd.3m.post-it-notes pwn +application/vnd.FloGraphIt +application/vnd.HandHeld-Entertainment+xml +application/vnd.Kinar +application/vnd.MFER +application/vnd.Mobius.DAF +application/vnd.Mobius.DIS +application/vnd.Mobius.MBK +application/vnd.Mobius.MQY +application/vnd.Mobius.MSL +application/vnd.Mobius.PLC +application/vnd.Mobius.TXF +application/vnd.Quark.QuarkXPress +application/vnd.RenLearn.rlprint +application/vnd.SimTech-MindMapper +application/vnd.accpac.simply.aso aso +application/vnd.accpac.simply.imp imp +application/vnd.acucobol acu +application/vnd.acucorp acutc atc +application/vnd.adobe.air-application-installer-package+zip air +application/vnd.adobe.formscentral.fcdt fcdt +application/vnd.adobe.fxp fxp fxpl +application/vnd.adobe.partial-upload +application/vnd.adobe.xdp+xml xdp +application/vnd.adobe.xfdf xfdf +application/vnd.aether.imp +application/vnd.ah-barcode +application/vnd.ahead.space ahead +application/vnd.airzip.filesecure.azf azf +application/vnd.airzip.filesecure.azs azs +application/vnd.amazon.ebook azw +application/vnd.americandynamics.acc acc +application/vnd.amiga.ami ami +application/vnd.amundsen.maze+xml +application/vnd.android.package-archive apk +application/vnd.anser-web-certificate-issue-initiation cii +application/vnd.anser-web-funds-transfer-initiation fti +application/vnd.antix.game-component atx +application/vnd.apple.installer+xml mpkg +application/vnd.apple.mpegurl m3u8 +application/vnd.arastra.swi swi +application/vnd.aristanetworks.swi swi +application/vnd.astraea-software.iota iota +application/vnd.audiograph aep +application/vnd.autopackage +application/vnd.avistar+xml +application/vnd.balsamiq.bmml+xml +application/vnd.blueice.multipass mpm +application/vnd.bluetooth.ep.oob +application/vnd.bmi bmi +application/vnd.businessobjects rep +application/vnd.cab-jscript +application/vnd.canon-cpdl +application/vnd.canon-lips +application/vnd.cendio.thinlinc.clientconf +application/vnd.century-systems.tcp_stream +application/vnd.chemdraw+xml cdxml +application/vnd.chipnuts.karaoke-mmd mmd +application/vnd.cinderella cdy +application/vnd.cirpack.isdn-ext +application/vnd.claymore cla +application/vnd.cloanto.rp9 rp9 +application/vnd.clonk.c4group c4d c4f c4g c4p c4u +application/vnd.cluetrust.cartomobile-config c11amc +application/vnd.cluetrust.cartomobile-config-pkg c11amz +application/vnd.collection+json +application/vnd.collection.next+json +application/vnd.commerce-battelle +application/vnd.commonspace csp +application/vnd.comsocaller +application/vnd.contact.cmsg cdbcmsg +application/vnd.cosmocaller cmc +application/vnd.crick.clicker clkx +application/vnd.crick.clicker.keyboard clkk +application/vnd.crick.clicker.palette clkp +application/vnd.crick.clicker.template clkt +application/vnd.crick.clicker.wordbank clkw +application/vnd.criticaltools.wbs+xml wbs +application/vnd.ctc-posml pml +application/vnd.ctct.ws+xml +application/vnd.cups-pdf +application/vnd.cups-postscript +application/vnd.cups-ppd ppd +application/vnd.cups-raster +application/vnd.cups-raw +application/vnd.curl +application/vnd.curl.car car +application/vnd.curl.pcurl pcurl +application/vnd.cyan.dean.root+xml +application/vnd.cybank +application/vnd.dart dart +application/vnd.data-vision.rdz rdz +application/vnd.dece.data uvd uvf uvvd uvvf +application/vnd.dece.ttml+xml uvt uvvt +application/vnd.dece.unspecified uvvx uvx +application/vnd.dece.zip uvvz uvz +application/vnd.denovo.fcselayout-link fe_launch +application/vnd.dir-bi.plate-dl-nosuffix +application/vnd.dm.delegation+xml +application/vnd.dna dna +application/vnd.dolby.mlp mlp +application/vnd.dolby.mobile.1 +application/vnd.dolby.mobile.2 +application/vnd.dpgraph dpg +application/vnd.dreamfactory dfac +application/vnd.ds-keypoint kpxx +application/vnd.dtg.local +application/vnd.dtg.local.flash +application/vnd.dtg.local.html +application/vnd.dvb.ait ait +application/vnd.dvb.dvbj +application/vnd.dvb.esgcontainer +application/vnd.dvb.ipdcdftnotifaccess +application/vnd.dvb.ipdcesgaccess +application/vnd.dvb.ipdcesgaccess2 +application/vnd.dvb.ipdcesgpdd +application/vnd.dvb.ipdcroaming +application/vnd.dvb.iptv.alfec-base +application/vnd.dvb.iptv.alfec-enhancement +application/vnd.dvb.notif-aggregate-root+xml +application/vnd.dvb.notif-container+xml +application/vnd.dvb.notif-generic+xml +application/vnd.dvb.notif-ia-msglist+xml +application/vnd.dvb.notif-ia-registration-request+xml +application/vnd.dvb.notif-ia-registration-response+xml +application/vnd.dvb.notif-init+xml +application/vnd.dvb.pfr +application/vnd.dvb.service svc +application/vnd.dxr +application/vnd.dynageo geo +application/vnd.easykaraoke.cdgdownload +application/vnd.ecdis-update +application/vnd.ecowin.chart mag +application/vnd.ecowin.filerequest +application/vnd.ecowin.fileupdate +application/vnd.ecowin.series +application/vnd.ecowin.seriesrequest +application/vnd.ecowin.seriesupdate +application/vnd.emclient.accessrequest+xml +application/vnd.enliven nml +application/vnd.eprints.data+xml +application/vnd.epson.esf esf +application/vnd.epson.msf msf +application/vnd.epson.quickanime qam +application/vnd.epson.salt slt +application/vnd.epson.ssf ssf +application/vnd.ericsson.quickcall +application/vnd.eszigno3+xml es3 et3 +application/vnd.etsi.aoc+xml +application/vnd.etsi.cug+xml +application/vnd.etsi.iptvcommand+xml +application/vnd.etsi.iptvdiscovery+xml +application/vnd.etsi.iptvprofile+xml +application/vnd.etsi.iptvsad-bc+xml +application/vnd.etsi.iptvsad-cod+xml +application/vnd.etsi.iptvsad-npvr+xml +application/vnd.etsi.iptvservice+xml +application/vnd.etsi.iptvsync+xml +application/vnd.etsi.iptvueprofile+xml +application/vnd.etsi.mcid+xml +application/vnd.etsi.overload-control-policy-dataset+xml +application/vnd.etsi.sci+xml +application/vnd.etsi.simservs+xml +application/vnd.etsi.tsl+xml +application/vnd.etsi.tsl.der +application/vnd.eudora.data +application/vnd.ezpix-album ez2 +application/vnd.ezpix-package ez3 +application/vnd.f-secure.mobile +application/vnd.fdf fdf +application/vnd.fdsn.mseed mseed +application/vnd.fdsn.seed dataless seed +application/vnd.ffsns +application/vnd.fints +application/vnd.flographit gph +application/vnd.fluxtime.clip ftc +application/vnd.font-fontforge-sfd +application/vnd.framemaker book fm frame maker +application/vnd.frogans.fnc fnc +application/vnd.frogans.ltf ltf +application/vnd.fsc.weblaunch fsc +application/vnd.fujitsu.oasys oas +application/vnd.fujitsu.oasys2 oa2 +application/vnd.fujitsu.oasys3 oa3 +application/vnd.fujitsu.oasysgp fg5 +application/vnd.fujitsu.oasysprs bh2 +application/vnd.fujixerox.ART-EX +application/vnd.fujixerox.ART4 +application/vnd.fujixerox.HBPL +application/vnd.fujixerox.art-ex +application/vnd.fujixerox.art4 +application/vnd.fujixerox.ddd ddd +application/vnd.fujixerox.docuworks xdw +application/vnd.fujixerox.docuworks.binder xbd +application/vnd.fujixerox.hbpl +application/vnd.fut-misnet +application/vnd.fuzzysheet fzs +application/vnd.genomatix.tuxedo txd +application/vnd.geocube+xml +application/vnd.geogebra.file ggb +application/vnd.geogebra.tool ggt +application/vnd.geometry-explorer gex gre +application/vnd.geonext gxt +application/vnd.geoplan g2w +application/vnd.geospace g3w +application/vnd.globalplatform.card-content-mgt +application/vnd.globalplatform.card-content-mgt-response +application/vnd.gmx gmx +application/vnd.google-earth.kml+xml kml +application/vnd.google-earth.kmz kmz +application/vnd.grafeq gqf gqs +application/vnd.gridmp +application/vnd.groove-account gac +application/vnd.groove-help ghf +application/vnd.groove-identity-message gim +application/vnd.groove-injector grv +application/vnd.groove-tool-message gtm +application/vnd.groove-tool-template tpl +application/vnd.groove-vcard vcg +application/vnd.hal+json +application/vnd.hal+xml hal +application/vnd.handheld-entertainment+xml zmm +application/vnd.hbci hbci +application/vnd.hcl-bireports +application/vnd.hhe.lesson-player les +application/vnd.hp-HPGL +application/vnd.hp-PCL +application/vnd.hp-PCLXL +application/vnd.hp-hpgl hpgl +application/vnd.hp-hpid hpid +application/vnd.hp-hps hps +application/vnd.hp-jlyt jlt +application/vnd.hp-pcl pcl +application/vnd.hp-pclxl pclxl +application/vnd.httphone +application/vnd.hydrostatix.sof-data sfd-hdstx +application/vnd.hzn-3d-crossword x3d +application/vnd.ibm.MiniPay +application/vnd.ibm.afplinedata +application/vnd.ibm.electronic-media +application/vnd.ibm.minipay mpy +application/vnd.ibm.modcap afp list3820 listafp +application/vnd.ibm.rights-management irm +application/vnd.ibm.secure-container sc +application/vnd.iccprofile icc icm +application/vnd.ieee.1905 +application/vnd.igloader igl +application/vnd.immervision-ivp ivp +application/vnd.immervision-ivu ivu +application/vnd.informedcontrol.rms+xml +application/vnd.informix-visionary +application/vnd.infotech.project +application/vnd.infotech.project+xml +application/vnd.innopath.wamp.notification +application/vnd.insors.igm igm +application/vnd.intercon.formnet xpw xpx +application/vnd.intergeo i2g +application/vnd.intertrust.digibox +application/vnd.intertrust.nncp +application/vnd.intu.qbo qbo +application/vnd.intu.qfx qfx +application/vnd.iptc.g2.conceptitem+xml +application/vnd.iptc.g2.knowledgeitem+xml +application/vnd.iptc.g2.newsitem+xml +application/vnd.iptc.g2.newsmessage+xml +application/vnd.iptc.g2.packageitem+xml +application/vnd.iptc.g2.planningitem+xml +application/vnd.ipunplugged.rcprofile rcprofile +application/vnd.irepository.package+xml irp +application/vnd.is-xpr xpr +application/vnd.isac.fcs fcs +application/vnd.jam jam +application/vnd.japannet-directory-service +application/vnd.japannet-jpnstore-wakeup +application/vnd.japannet-payment-wakeup +application/vnd.japannet-registration +application/vnd.japannet-registration-wakeup +application/vnd.japannet-setstore-wakeup +application/vnd.japannet-verification +application/vnd.japannet-verification-wakeup +application/vnd.jcp.javame.midlet-rms rms +application/vnd.jisp jisp +application/vnd.joost.joda-archive joda +application/vnd.jsk.isdn-ngn +application/vnd.kahootz ktr ktz +application/vnd.kde.karbon karbon +application/vnd.kde.kchart chrt +application/vnd.kde.kformula kfo +application/vnd.kde.kivio flw +application/vnd.kde.kontour kon +application/vnd.kde.kpresenter kpr kpt +application/vnd.kde.kspread ksp +application/vnd.kde.kword kwd kwt +application/vnd.kenameaapp htke +application/vnd.kidspiration kia +application/vnd.kinar kne knp +application/vnd.koan skd skm skp skt +application/vnd.kodak-descriptor sse +application/vnd.las.las+xml lasxml +application/vnd.liberty-request+xml +application/vnd.llamagraphics.life-balance.desktop lbd +application/vnd.llamagraphics.life-balance.exchange+xml lbe +application/vnd.lotus-1-2-3 123 +application/vnd.lotus-approach apr +application/vnd.lotus-freelance pre +application/vnd.lotus-notes nsf +application/vnd.lotus-organizer org +application/vnd.lotus-screencam scm +application/vnd.lotus-wordpro lwp +application/vnd.macports.portpkg portpkg +application/vnd.marlin.drm.actiontoken+xml +application/vnd.marlin.drm.conftoken+xml +application/vnd.marlin.drm.license+xml +application/vnd.marlin.drm.mdcf +application/vnd.mcd mcd +application/vnd.medcalcdata mc1 +application/vnd.mediastation.cdkey cdkey +application/vnd.meridian-slingshot +application/vnd.mfer mwf +application/vnd.mfmp mfm +application/vnd.micrografx.flo flo +application/vnd.micrografx.igx igx +application/vnd.mif mif +application/vnd.minisoft-hp3000-save +application/vnd.mitsubishi.misty-guard.trustweb +application/vnd.mobius.daf daf +application/vnd.mobius.dis dis +application/vnd.mobius.mbk mbk +application/vnd.mobius.mqy mqy +application/vnd.mobius.msl msl +application/vnd.mobius.plc plc +application/vnd.mobius.txf txf +application/vnd.mophun.application mpn +application/vnd.mophun.certificate mpc +application/vnd.motorola.flexsuite +application/vnd.motorola.flexsuite.adsi +application/vnd.motorola.flexsuite.fis +application/vnd.motorola.flexsuite.gotap +application/vnd.motorola.flexsuite.kmr +application/vnd.motorola.flexsuite.ttc +application/vnd.motorola.flexsuite.wem +application/vnd.motorola.iprm +application/vnd.mozilla.xul+xml xul +application/vnd.ms-artgalry cil +application/vnd.ms-asf +application/vnd.ms-cab-compressed cab +application/vnd.ms-excel xla xlb xlc xlm xls xlt xlw +application/vnd.ms-excel.addin.macroEnabled.12 xlam +application/vnd.ms-excel.addin.macroenabled.12 xlam +application/vnd.ms-excel.sheet.binary.macroEnabled.12 xlsb +application/vnd.ms-excel.sheet.binary.macroenabled.12 xlsb +application/vnd.ms-excel.sheet.macroEnabled.12 xlsm +application/vnd.ms-excel.sheet.macroenabled.12 xlsm +application/vnd.ms-excel.template.macroEnabled.12 xltm +application/vnd.ms-excel.template.macroenabled.12 xltm +application/vnd.ms-fontobject eot +application/vnd.ms-htmlhelp chm +application/vnd.ms-ims ims +application/vnd.ms-lrm lrm +application/vnd.ms-office.activeX+xml +application/vnd.ms-officetheme thmx +application/vnd.ms-pki.seccat cat +application/vnd.ms-pki.stl stl +application/vnd.ms-playready.initiator+xml +application/vnd.ms-powerpoint pot pps ppt +application/vnd.ms-powerpoint.addin.macroEnabled.12 ppam +application/vnd.ms-powerpoint.addin.macroenabled.12 ppam +application/vnd.ms-powerpoint.presentation.macroEnabled.12 pptm +application/vnd.ms-powerpoint.presentation.macroenabled.12 pptm +application/vnd.ms-powerpoint.slide.macroEnabled.12 sldm +application/vnd.ms-powerpoint.slide.macroenabled.12 sldm +application/vnd.ms-powerpoint.slideshow.macroEnabled.12 ppsm +application/vnd.ms-powerpoint.slideshow.macroenabled.12 ppsm +application/vnd.ms-powerpoint.template.macroEnabled.12 potm +application/vnd.ms-powerpoint.template.macroenabled.12 potm +application/vnd.ms-project mpp mpt +application/vnd.ms-tnef +application/vnd.ms-wmdrm.lic-chlg-req +application/vnd.ms-wmdrm.lic-resp +application/vnd.ms-wmdrm.meter-chlg-req +application/vnd.ms-wmdrm.meter-resp +application/vnd.ms-word.document.macroEnabled.12 docm +application/vnd.ms-word.document.macroenabled.12 docm +application/vnd.ms-word.template.macroEnabled.12 dotm +application/vnd.ms-word.template.macroenabled.12 dotm +application/vnd.ms-works wcm wdb wks wps +application/vnd.ms-wpl wpl +application/vnd.ms-xpsdocument xps +application/vnd.mseq mseq +application/vnd.msign +application/vnd.multiad.creator +application/vnd.multiad.creator.cif +application/vnd.music-niff +application/vnd.musician mus +application/vnd.muvee.style msty +application/vnd.mynfc taglet +application/vnd.ncd.control +application/vnd.ncd.reference +application/vnd.nervana +application/vnd.netfpx +application/vnd.neurolanguage.nlu nlu +application/vnd.nintendo.nitro.rom +application/vnd.nitf nitf ntf +application/vnd.noblenet-directory nnd +application/vnd.noblenet-sealer nns +application/vnd.noblenet-web nnw +application/vnd.nokia.catalogs +application/vnd.nokia.conml+wbxml +application/vnd.nokia.conml+xml +application/vnd.nokia.iSDS-radio-presets +application/vnd.nokia.iptv.config+xml +application/vnd.nokia.isds-radio-presets +application/vnd.nokia.landmark+wbxml +application/vnd.nokia.landmark+xml +application/vnd.nokia.landmarkcollection+xml +application/vnd.nokia.n-gage.ac+xml +application/vnd.nokia.n-gage.data ngdat +application/vnd.nokia.n-gage.symbian.install n-gage +application/vnd.nokia.ncd +application/vnd.nokia.pcd+wbxml +application/vnd.nokia.pcd+xml +application/vnd.nokia.radio-preset rpst +application/vnd.nokia.radio-presets rpss +application/vnd.novadigm.EDM +application/vnd.novadigm.EDX +application/vnd.novadigm.EXT +application/vnd.novadigm.edm edm +application/vnd.novadigm.edx edx +application/vnd.novadigm.ext ext +application/vnd.ntt-local.content-share +application/vnd.ntt-local.file-transfer +application/vnd.ntt-local.sip-ta_remote +application/vnd.ntt-local.sip-ta_tcp_stream +application/vnd.oasis.opendocument.chart odc +application/vnd.oasis.opendocument.chart-template otc +application/vnd.oasis.opendocument.database odb +application/vnd.oasis.opendocument.formula odf +application/vnd.oasis.opendocument.formula-template odft +application/vnd.oasis.opendocument.graphics odg +application/vnd.oasis.opendocument.graphics-template otg +application/vnd.oasis.opendocument.image odi +application/vnd.oasis.opendocument.image-template oti +application/vnd.oasis.opendocument.presentation odp +application/vnd.oasis.opendocument.presentation-template otp +application/vnd.oasis.opendocument.spreadsheet ods +application/vnd.oasis.opendocument.spreadsheet-template ots +application/vnd.oasis.opendocument.text odt +application/vnd.oasis.opendocument.text-master odm otm +application/vnd.oasis.opendocument.text-template ott +application/vnd.oasis.opendocument.text-web oth +application/vnd.obn +application/vnd.oftn.l10n+json +application/vnd.oipf.contentaccessdownload+xml +application/vnd.oipf.contentaccessstreaming+xml +application/vnd.oipf.cspg-hexbinary +application/vnd.oipf.dae.svg+xml +application/vnd.oipf.dae.xhtml+xml +application/vnd.oipf.mippvcontrolmessage+xml +application/vnd.oipf.pae.gem +application/vnd.oipf.spdiscovery+xml +application/vnd.oipf.spdlist+xml +application/vnd.oipf.ueprofile+xml +application/vnd.oipf.userprofile+xml +application/vnd.olpc-sugar xo +application/vnd.oma-scws-config +application/vnd.oma-scws-http-request +application/vnd.oma-scws-http-response +application/vnd.oma.bcast.associated-procedure-parameter+xml +application/vnd.oma.bcast.drm-trigger+xml +application/vnd.oma.bcast.imd+xml +application/vnd.oma.bcast.ltkm +application/vnd.oma.bcast.notification+xml +application/vnd.oma.bcast.provisioningtrigger +application/vnd.oma.bcast.sgboot +application/vnd.oma.bcast.sgdd+xml +application/vnd.oma.bcast.sgdu +application/vnd.oma.bcast.simple-symbol-container +application/vnd.oma.bcast.smartcard-trigger+xml +application/vnd.oma.bcast.sprov+xml +application/vnd.oma.bcast.stkm +application/vnd.oma.cab-address-book+xml +application/vnd.oma.cab-pcc+xml +application/vnd.oma.cab-subs-invite+xml +application/vnd.oma.cab-user-prefs+xml +application/vnd.oma.dcd +application/vnd.oma.dcdc +application/vnd.oma.dd2+xml dd2 +application/vnd.oma.drm.risd+xml +application/vnd.oma.group-usage-list+xml +application/vnd.oma.pal+xml +application/vnd.oma.poc.detailed-progress-report+xml +application/vnd.oma.poc.final-report+xml +application/vnd.oma.poc.groups+xml +application/vnd.oma.poc.invocation-descriptor+xml +application/vnd.oma.poc.optimized-progress-report+xml +application/vnd.oma.push +application/vnd.oma.scidm.messages+xml +application/vnd.oma.xcap-directory+xml +application/vnd.omads-email+xml +application/vnd.omads-file+xml +application/vnd.omads-folder+xml +application/vnd.omaloc-supl-init +application/vnd.openofficeorg.extension oxt +application/vnd.openxmlformats-officedocument.custom-properties+xml +application/vnd.openxmlformats-officedocument.customXmlProperties+xml +application/vnd.openxmlformats-officedocument.drawing+xml +application/vnd.openxmlformats-officedocument.drawingml.chart+xml +application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml +application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml +application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml +application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml +application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml +application/vnd.openxmlformats-officedocument.extended-properties+xml +application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml +application/vnd.openxmlformats-officedocument.presentationml.comments+xml +application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml +application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml +application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml +application/vnd.openxmlformats-officedocument.presentationml.presProps+xml +application/vnd.openxmlformats-officedocument.presentationml.presentation pptx +application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml +application/vnd.openxmlformats-officedocument.presentationml.slide sldx +application/vnd.openxmlformats-officedocument.presentationml.slide+xml +application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml +application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml +application/vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml +application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx +application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml +application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml +application/vnd.openxmlformats-officedocument.presentationml.tags+xml +application/vnd.openxmlformats-officedocument.presentationml.template potx +application/vnd.openxmlformats-officedocument.presentationml.template.main+xml +application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx +application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx +application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml +application/vnd.openxmlformats-officedocument.theme+xml +application/vnd.openxmlformats-officedocument.themeOverride+xml +application/vnd.openxmlformats-officedocument.vmlDrawing +application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.document docx +application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx +application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml +application/vnd.openxmlformats-package.core-properties+xml +application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml +application/vnd.openxmlformats-package.relationships+xml +application/vnd.orange.indata +application/vnd.osa.netdeploy +application/vnd.osgeo.mapguide.package mgp +application/vnd.osgi.bundle +application/vnd.osgi.dp dp +application/vnd.osgi.subsystem esa +application/vnd.otps.ct-kip+xml +application/vnd.palm oprc pdb pqa +application/vnd.paos.xml +application/vnd.pawaafile paw +application/vnd.pg.format str +application/vnd.pg.osasli ei6 +application/vnd.piaccess.application-licence +application/vnd.picsel efif +application/vnd.pmi.widget wg +application/vnd.poc.group-advertisement+xml +application/vnd.pocketlearn plf +application/vnd.powerbuilder6 pbd +application/vnd.powerbuilder6-s +application/vnd.powerbuilder7 +application/vnd.powerbuilder7-s +application/vnd.powerbuilder75 +application/vnd.powerbuilder75-s +application/vnd.preminet +application/vnd.previewsystems.box box +application/vnd.proteus.magazine mgz +application/vnd.publishare-delta-tree qps +application/vnd.pvi.ptid1 ptid +application/vnd.pwg-multiplexed +application/vnd.pwg-xhtml-print+xml +application/vnd.qualcomm.brew-app-res +application/vnd.quark.quarkxpress qwd qwt qxb qxd qxl qxt +application/vnd.quobject-quoxdocument +application/vnd.radisys.moml+xml +application/vnd.radisys.msml+xml +application/vnd.radisys.msml-audit+xml +application/vnd.radisys.msml-audit-conf+xml +application/vnd.radisys.msml-audit-conn+xml +application/vnd.radisys.msml-audit-dialog+xml +application/vnd.radisys.msml-audit-stream+xml +application/vnd.radisys.msml-conf+xml +application/vnd.radisys.msml-dialog+xml +application/vnd.radisys.msml-dialog-base+xml +application/vnd.radisys.msml-dialog-fax-detect+xml +application/vnd.radisys.msml-dialog-fax-sendrecv+xml +application/vnd.radisys.msml-dialog-group+xml +application/vnd.radisys.msml-dialog-speech+xml +application/vnd.radisys.msml-dialog-transform+xml +application/vnd.rainstor.data +application/vnd.rapid +application/vnd.realvnc.bed bed +application/vnd.recordare.musicxml mxl +application/vnd.recordare.musicxml+xml musicxml +application/vnd.renlearn.rlprint +application/vnd.rig.cryptonote cryptonote +application/vnd.rim.cod cod +application/vnd.rn-realmedia rm +application/vnd.rn-realmedia-vbr rmvb +application/vnd.route66.link66+xml link66 +application/vnd.rs-274x +application/vnd.ruckus.download +application/vnd.s3sms +application/vnd.sailingtracker.track st +application/vnd.sbm.cid +application/vnd.sbm.mid2 +application/vnd.scribus +application/vnd.sealed.3df +application/vnd.sealed.csf +application/vnd.sealed.doc +application/vnd.sealed.eml +application/vnd.sealed.mht +application/vnd.sealed.net +application/vnd.sealed.ppt +application/vnd.sealed.tiff +application/vnd.sealed.xls +application/vnd.sealedmedia.softseal.html +application/vnd.sealedmedia.softseal.pdf +application/vnd.seemail see +application/vnd.sema sema +application/vnd.semd semd +application/vnd.semf semf +application/vnd.shana.informed.formdata ifm +application/vnd.shana.informed.formtemplate itp +application/vnd.shana.informed.interchange iif +application/vnd.shana.informed.package ipk +application/vnd.simtech-mindmapper twd twds +application/vnd.smaf mmf +application/vnd.smart.notebook +application/vnd.smart.teacher teacher +application/vnd.software602.filler.form+xml +application/vnd.software602.filler.form-xml-zip +application/vnd.solent.sdkm+xml sdkd sdkm +application/vnd.spotfire.dxp dxp +application/vnd.spotfire.sfs sfs +application/vnd.sss-cod +application/vnd.sss-dtf +application/vnd.sss-ntf +application/vnd.stardivision.calc sdc +application/vnd.stardivision.chart sds +application/vnd.stardivision.draw sda +application/vnd.stardivision.impress sdd sdp +application/vnd.stardivision.math sdf smf +application/vnd.stardivision.writer sdw vor +application/vnd.stardivision.writer-global sgl +application/vnd.stepmania.package smzip +application/vnd.stepmania.stepchart sm +application/vnd.street-stream +application/vnd.sun.wadl+xml +application/vnd.sun.xml.calc sxc +application/vnd.sun.xml.calc.template stc +application/vnd.sun.xml.draw sxd +application/vnd.sun.xml.draw.template std +application/vnd.sun.xml.impress sxi +application/vnd.sun.xml.impress.template sti +application/vnd.sun.xml.math sxm +application/vnd.sun.xml.writer sxw +application/vnd.sun.xml.writer.global sxg +application/vnd.sun.xml.writer.template stw +application/vnd.sus-calendar sus susp +application/vnd.svd svd +application/vnd.swiftview-ics +application/vnd.symbian.install sis sisx +application/vnd.syncml+xml xsm +application/vnd.syncml.dm+wbxml bdm +application/vnd.syncml.dm+xml xdm +application/vnd.syncml.dm.notification +application/vnd.syncml.dmddf+wbxml +application/vnd.syncml.dmddf+xml +application/vnd.syncml.dmtnds+wbxml +application/vnd.syncml.dmtnds+xml +application/vnd.syncml.ds.notification +application/vnd.tao.intent-module-archive tao +application/vnd.tcpdump.pcap cap dmp pcap +application/vnd.tmobile-livetv tmo +application/vnd.trid.tpt tpt +application/vnd.triscape.mxs mxs +application/vnd.trueapp tra +application/vnd.truedoc +application/vnd.tve-trigger +application/vnd.ubisoft.webplayer +application/vnd.ufdl ufd ufdl +application/vnd.uiq.theme utz +application/vnd.umajin umj +application/vnd.unity unityweb +application/vnd.uoml+xml uoml +application/vnd.uplanet.alert +application/vnd.uplanet.alert-wbxml +application/vnd.uplanet.bearer-choice +application/vnd.uplanet.bearer-choice-wbxml +application/vnd.uplanet.cacheop +application/vnd.uplanet.cacheop-wbxml +application/vnd.uplanet.channel +application/vnd.uplanet.channel-wbxml +application/vnd.uplanet.list +application/vnd.uplanet.list-wbxml +application/vnd.uplanet.listcmd +application/vnd.uplanet.listcmd-wbxml +application/vnd.uplanet.signal +application/vnd.vcx vcx +application/vnd.vd-study +application/vnd.vectorworks +application/vnd.verimatrix.vcas +application/vnd.vidsoft.vidconference +application/vnd.visio vsd vss vst vsw +application/vnd.visionary vis +application/vnd.vividence.scriptfile +application/vnd.vsf vsf +application/vnd.wap.sic +application/vnd.wap.slc +application/vnd.wap.wbxml wbxml +application/vnd.wap.wmlc wmlc +application/vnd.wap.wmlscriptc wmlsc +application/vnd.webturbo wtb +application/vnd.wfa.wsc +application/vnd.wmc +application/vnd.wmf.bootstrap +application/vnd.wolfram.mathematica +application/vnd.wolfram.mathematica.package +application/vnd.wolfram.player nbp +application/vnd.wordperfect wpd +application/vnd.wordperfect5.1 wp5 +application/vnd.wqd wqd +application/vnd.wrq-hp3000-labelled +application/vnd.wt.stf stf +application/vnd.wv.csp+wbxml +application/vnd.wv.csp+xml +application/vnd.wv.ssp+xml +application/vnd.xara xar +application/vnd.xfdl xfdl +application/vnd.xfdl.webform +application/vnd.xmi+xml +application/vnd.xmpie.cpkg +application/vnd.xmpie.dpkg +application/vnd.xmpie.plan +application/vnd.xmpie.ppkg +application/vnd.xmpie.xlim +application/vnd.yamaha.hv-dic hvd +application/vnd.yamaha.hv-script hvs +application/vnd.yamaha.hv-voice hvp +application/vnd.yamaha.openscoreformat osf +application/vnd.yamaha.openscoreformat.osfpvg+xml osfpvg +application/vnd.yamaha.remote-setup +application/vnd.yamaha.smaf-audio saf +application/vnd.yamaha.smaf-phrase spf +application/vnd.yamaha.through-ngn +application/vnd.yamaha.tunnel-udpencap +application/vnd.yellowriver-custom-menu cmp +application/vnd.zul zir zirz +application/vnd.zzazz.deck+xml zaz +application/voicexml+xml vxml +application/vq-rtcpxr +application/watcherinfo+xml +application/whoispp-query +application/whoispp-response +application/widget wgt +application/winhlp hlp +application/wita +application/wordperfect wpd +application/wordperfect5.1 wp5 +application/wsdl+xml wsdl +application/wspolicy+xml wspolicy +application/x-123 wk +application/x-7z-compressed 7z +application/x-abiword abw +application/x-ace-compressed ace +application/x-apple-diskimage dmg +application/x-authorware-bin aab u32 vox x32 +application/x-authorware-map aam +application/x-authorware-seg aas +application/x-bcpio bcpio +application/x-bittorrent torrent +application/x-blorb blb blorb +application/x-bzip bz +application/x-bzip2 boz bz2 +application/x-cab cab +application/x-cbr cb7 cba cbr cbt cbz +application/x-cbz cbz +application/x-cdf cda cdf +application/x-cdlink vcd +application/x-cfs-compressed cfs +application/x-chat chat +application/x-chess-pgn pgn +application/x-compress +application/x-comsol mph +application/x-conference nsc +application/x-core +application/x-cpio cpio +application/x-csh csh +application/x-debian-package deb udeb +application/x-dgc-compressed dgc +application/x-director cct cst cxt dcr dir dxr fgd swa w3d +application/x-dms dms +application/x-doom wad +application/x-dtbncx+xml ncx +application/x-dtbook+xml dtb +application/x-dtbresource+xml res +application/x-dvi dvi +application/x-envoy evy +application/x-eva eva +application/x-executable +application/x-flac flac +application/x-font gsf pcf pcf.Z pfa pfb +application/x-font-bdf bdf +application/x-font-dos +application/x-font-framemaker +application/x-font-ghostscript gsf +application/x-font-libgrx +application/x-font-linux-psf psf +application/x-font-otf otf +application/x-font-pcf pcf +application/x-font-snf snf +application/x-font-speedo +application/x-font-sunos-news +application/x-font-ttf ttc ttf +application/x-font-type1 afm pfa pfb pfm +application/x-font-vfont +application/x-font-woff woff +application/x-freearc arc +application/x-freemind mm +application/x-futuresplash spl +application/x-ganttproject gan +application/x-gca-compressed gca +application/x-glulx ulx +application/x-gnumeric gnumeric +application/x-go-sgf sgf +application/x-gramps-xml gramps +application/x-graphing-calculator gcf +application/x-gtar gtar taz tgz +application/x-gtar-compressed taz tgz +application/x-gzip +application/x-hdf hdf +application/x-hwp hwp +application/x-ica ica +application/x-info info +application/x-install-instructions install +application/x-internet-signup ins isp +application/x-iphone iii +application/x-iso9660-image iso +application/x-jam jam +application/x-java-applet +application/x-java-bean +application/x-java-jnlp-file jnlp +application/x-javascript js +application/x-jmol jmz +application/x-kchart chrt +application/x-kdelnk +application/x-killustrator kil +application/x-koan skd skm skp skt +application/x-kpresenter kpr kpt +application/x-kspread ksp +application/x-kword kwd kwt +application/x-latex latex +application/x-lha lha +application/x-lyx lyx +application/x-lzh lzh +application/x-lzh-compressed lha lzh +application/x-lzx lzx +application/x-maker book fb fbdoc fm frame frm maker +application/x-md5 md5 +application/x-mie mie +application/x-mif mif +application/x-mobipocket-ebook mobi prc +application/x-mpegURL m3u8 +application/x-ms-application application +application/x-ms-shortcut lnk +application/x-ms-wmd wmd +application/x-ms-wmz wmz +application/x-ms-xbap xbap +application/x-msaccess mdb +application/x-msbinder obd +application/x-mscardfile crd +application/x-msclip clp +application/x-msdos-program bat com dll exe +application/x-msdownload bat com dll exe msi +application/x-msi msi +application/x-msmediaview m13 m14 mvb +application/x-msmetafile emf emz wmf wmz +application/x-msmoney mny +application/x-mspublisher pub +application/x-msschedule scd +application/x-msterminal trm +application/x-mswrite wri +application/x-netcdf cdf nc +application/x-ns-proxy-autoconfig dat pac +application/x-nwc nwc +application/x-nzb nzb +application/x-object o +application/x-oz-application oza +application/x-pkcs12 p12 pfx +application/x-pkcs7-certificates p7b spc +application/x-pkcs7-certreqresp p7r +application/x-pkcs7-crl crl +application/x-python-code pyc pyo +application/x-qgis qgs shp shx +application/x-quicktimeplayer qtl +application/x-rar-compressed rar +application/x-rdp rdp +application/x-redhat-package-manager rpm +application/x-research-info-systems ris +application/x-rss+xml rss +application/x-ruby rb +application/x-rx +application/x-scilab sce sci +application/x-scilab-xcos xcos +application/x-sh sh +application/x-sha1 sha1 +application/x-shar shar +application/x-shellscript +application/x-shockwave-flash swf swfl +application/x-silverlight scr +application/x-silverlight-app xap +application/x-sql sql +application/x-stuffit sit sitx +application/x-stuffitx sitx +application/x-subrip srt +application/x-sv4cpio sv4cpio +application/x-sv4crc sv4crc +application/x-t3vm-image t3 +application/x-tads gam +application/x-tar tar +application/x-tcl tcl +application/x-tex tex +application/x-tex-gf gf +application/x-tex-pk pk +application/x-tex-tfm tfm +application/x-texinfo texi texinfo +application/x-tgif obj +application/x-trash % bak old sik ~ +application/x-troff roff t tr +application/x-troff-man man +application/x-troff-me me +application/x-troff-ms ms +application/x-ustar ustar +application/x-videolan +application/x-wais-source src +application/x-wingz wz +application/x-x509-ca-cert crt der +application/x-xcf xcf +application/x-xfig fig +application/x-xliff+xml xlf +application/x-xpinstall xpi +application/x-xz xz +application/x-zmachine z1 z2 z3 z4 z5 z6 z7 z8 +application/x400-bp +application/xaml+xml xaml +application/xcap-att+xml +application/xcap-caps+xml +application/xcap-diff+xml xdf +application/xcap-el+xml +application/xcap-error+xml +application/xcap-ns+xml +application/xcon-conference-info+xml +application/xcon-conference-info-diff+xml +application/xenc+xml xenc +application/xhtml+xml xht xhtml +application/xhtml-voice+xml +application/xml xml xsd xsl +application/xml-dtd dtd +application/xml-external-parsed-entity +application/xmpp+xml +application/xop+xml xop +application/xproc+xml xpl +application/xslt+xml xslt +application/xspf+xml xspf +application/xv+xml mxml xhvml xvm xvml +application/yang yang +application/yin+xml yin +application/zip zip +application/zlib +audio/1d-interleaved-parityfec +audio/32kadpcm +audio/3gpp +audio/3gpp2 +audio/AMR +audio/AMR-WB +audio/ATRAC-ADVANCED-LOSSLESS +audio/ATRAC-X +audio/ATRAC3 +audio/BV16 +audio/BV32 +audio/CN +audio/DAT12 +audio/DV +audio/DVI4 +audio/EVRC +audio/EVRC-QCP +audio/EVRC0 +audio/EVRC1 +audio/EVRCB +audio/EVRCB0 +audio/EVRCB1 +audio/EVRCWB +audio/EVRCWB0 +audio/EVRCWB1 +audio/G719 +audio/G722 +audio/G7221 +audio/G723 +audio/G726-16 +audio/G726-24 +audio/G726-32 +audio/G726-40 +audio/G728 +audio/G729 +audio/G7291 +audio/G729D +audio/G729E +audio/GSM +audio/GSM-EFR +audio/GSM-HR-08 +audio/L16 +audio/L20 +audio/L24 +audio/L8 +audio/LPC +audio/MP4A-LATM +audio/MPA +audio/PCMA +audio/PCMA-WB +audio/PCMU +audio/PCMU-WB +audio/QCELP +audio/RED +audio/SMV +audio/SMV-QCP +audio/SMV0 +audio/UEMCLIP +audio/VDVI +audio/VMR-WB +audio/ac3 +audio/adpcm adp +audio/amr amr +audio/amr-wb awb +audio/amr-wb+ +audio/annodex axa +audio/asc +audio/basic au snd +audio/bv16 +audio/bv32 +audio/clearmode +audio/cn +audio/csound csd orc sco +audio/dat12 +audio/dls +audio/dsr-es201108 +audio/dsr-es202050 +audio/dsr-es202211 +audio/dsr-es202212 +audio/dvi4 +audio/eac3 +audio/evrc +audio/evrc-qcp +audio/evrc0 +audio/evrc1 +audio/evrcb +audio/evrcb0 +audio/evrcb1 +audio/evrcwb +audio/evrcwb0 +audio/evrcwb1 +audio/example +audio/flac flac +audio/fwdred +audio/g.722.1 +audio/g719 +audio/g722 +audio/g7221 +audio/g723 +audio/g726-16 +audio/g726-24 +audio/g726-32 +audio/g726-40 +audio/g728 +audio/g729 +audio/g7291 +audio/g729d +audio/g729e +audio/gsm +audio/gsm-efr +audio/iLBC +audio/ilbc +audio/ip-mr_v2.5 +audio/l16 +audio/l20 +audio/l24 +audio/l8 +audio/lpc +audio/midi kar mid midi rmi +audio/mobile-xmf +audio/mp4 mp4a +audio/mp4a-latm +audio/mpa +audio/mpa-robust +audio/mpeg m2a m3a m4a mp2 mp2a mp3 mpega mpga +audio/mpeg4-generic +audio/mpegurl m3u +audio/ogg oga ogg opus spx +audio/parityfec +audio/pcma +audio/pcma-wb +audio/pcmu +audio/pcmu-wb +audio/prs.sid sid +audio/qcelp +audio/raptorfec +audio/red +audio/rtp-enc-aescm128 +audio/rtp-midi +audio/rtx +audio/s3m s3m +audio/silk sil +audio/smv +audio/smv-qcp +audio/smv0 +audio/sp-midi +audio/speex +audio/t140c +audio/t38 +audio/telephone-event +audio/tone +audio/ulpfec +audio/vdvi +audio/vmr-wb +audio/vnd.3gpp.iufp +audio/vnd.4SB +audio/vnd.4sb +audio/vnd.CELP +audio/vnd.audiokoz +audio/vnd.celp +audio/vnd.cisco.nse +audio/vnd.cmles.radio-events +audio/vnd.cns.anp1 +audio/vnd.cns.inf1 +audio/vnd.dece.audio uva uvva +audio/vnd.digital-winds eol +audio/vnd.dlna.adts +audio/vnd.dolby.heaac.1 +audio/vnd.dolby.heaac.2 +audio/vnd.dolby.mlp +audio/vnd.dolby.mps +audio/vnd.dolby.pl2 +audio/vnd.dolby.pl2x +audio/vnd.dolby.pl2z +audio/vnd.dolby.pulse.1 +audio/vnd.dra dra +audio/vnd.dts dts +audio/vnd.dts.hd dtshd +audio/vnd.dvb.file +audio/vnd.everad.plj +audio/vnd.hns.audio +audio/vnd.lucent.voice lvp +audio/vnd.ms-playready.media.pya pya +audio/vnd.nokia.mobile-xmf +audio/vnd.nortel.vbk +audio/vnd.nuera.ecelp4800 ecelp4800 +audio/vnd.nuera.ecelp7470 ecelp7470 +audio/vnd.nuera.ecelp9600 ecelp9600 +audio/vnd.octel.sbc +audio/vnd.qcelp +audio/vnd.rhetorex.32kadpcm +audio/vnd.rip rip +audio/vnd.sealedmedia.softseal.mpeg +audio/vnd.vmx.cvsd +audio/vorbis +audio/vorbis-config +audio/webm weba +audio/x-aac aac +audio/x-aiff aif aifc aiff +audio/x-caf caf +audio/x-flac flac +audio/x-gsm gsm +audio/x-matroska mka +audio/x-mpegurl m3u +audio/x-ms-wax wax +audio/x-ms-wma wma +audio/x-pn-realaudio ra ram rm +audio/x-pn-realaudio-plugin rmp +audio/x-realaudio ra +audio/x-scpls pls +audio/x-sd2 sd2 +audio/x-wav wav +audio/xm xm +chemical/x-alchemy alc +chemical/x-cache cac cache +chemical/x-cache-csf csf +chemical/x-cactvs-binary cascii cbin ctab +chemical/x-cdx cdx +chemical/x-cerius cer +chemical/x-chem3d c3d +chemical/x-chemdraw chm +chemical/x-cif cif +chemical/x-cmdf cmdf +chemical/x-cml cml +chemical/x-compass cpa +chemical/x-crossfire bsd +chemical/x-csml csm csml +chemical/x-ctx ctx +chemical/x-cxf cef cxf +chemical/x-embl-dl-nucleotide emb embl +chemical/x-galactic-spc spc +chemical/x-gamess-input gam gamin inp +chemical/x-gaussian-checkpoint fch fchk +chemical/x-gaussian-cube cub +chemical/x-gaussian-input gau gjc gjf +chemical/x-gaussian-log gal +chemical/x-gcg8-sequence gcg +chemical/x-genbank gen +chemical/x-hin hin +chemical/x-isostar ist istr +chemical/x-jcamp-dx dx jdx +chemical/x-kinemage kin +chemical/x-macmolecule mcm +chemical/x-macromodel-input mmd mmod +chemical/x-mdl-molfile mol +chemical/x-mdl-rdfile rd +chemical/x-mdl-rxnfile rxn +chemical/x-mdl-sdfile sd sdf +chemical/x-mdl-tgf tgf +chemical/x-mmcif mcif +chemical/x-mol2 mol2 +chemical/x-molconn-Z b +chemical/x-mopac-graph gpt +chemical/x-mopac-input dat mop mopcrt mpc zmt +chemical/x-mopac-out moo +chemical/x-mopac-vib mvb +chemical/x-ncbi-asn1 asn +chemical/x-ncbi-asn1-ascii ent prt +chemical/x-ncbi-asn1-binary aso val +chemical/x-ncbi-asn1-spec asn +chemical/x-pdb ent pdb +chemical/x-rosdal ros +chemical/x-swissprot sw +chemical/x-vamas-iso14976 vms +chemical/x-vmd vmd +chemical/x-xtel xtel +chemical/x-xyz xyz +image/bmp bmp +image/cgm cgm +image/example +image/fits +image/g3fax g3 +image/gif gif +image/ief ief +image/jp2 +image/jpeg jpe jpeg jpg +image/jpm +image/jpx +image/ktx ktx +image/naplps +image/pcx pcx +image/png png +image/prs.btif btif +image/prs.pti +image/pwg-raster +image/sgi sgi +image/svg+xml svg svgz +image/t38 +image/tiff tif tiff +image/tiff-fx +image/vnd.adobe.photoshop psd +image/vnd.airzip.accelerator.azv +image/vnd.cns.inf2 +image/vnd.dece.graphic uvg uvi uvvg uvvi +image/vnd.djvu djv djvu +image/vnd.dvb.subtitle sub +image/vnd.dwg dwg +image/vnd.dxf dxf +image/vnd.fastbidsheet fbs +image/vnd.fpx fpx +image/vnd.fst fst +image/vnd.fujixerox.edmics-mmr mmr +image/vnd.fujixerox.edmics-rlc rlc +image/vnd.globalgraphics.pgb +image/vnd.microsoft.icon ico +image/vnd.mix +image/vnd.ms-modi mdi +image/vnd.ms-photo wdp +image/vnd.net-fpx npx +image/vnd.radiance +image/vnd.sealed.png +image/vnd.sealedmedia.softseal.gif +image/vnd.sealedmedia.softseal.jpg +image/vnd.svf +image/vnd.wap.wbmp wbmp +image/vnd.xiff xif +image/webp webp +image/x-3ds 3ds +image/x-canon-cr2 cr2 +image/x-canon-crw crw +image/x-cmu-raster ras +image/x-cmx cmx +image/x-coreldraw cdr +image/x-coreldrawpattern pat +image/x-coreldrawtemplate cdt +image/x-corelphotopaint cpt +image/x-epson-erf erf +image/x-freehand fh fh4 fh5 fh7 fhc +image/x-icon ico +image/x-jg art +image/x-jng jng +image/x-mrsid-image sid +image/x-ms-bmp bmp +image/x-nikon-nef nef +image/x-olympus-orf orf +image/x-pcx pcx +image/x-photoshop psd +image/x-pict pct pic +image/x-portable-anymap pnm +image/x-portable-bitmap pbm +image/x-portable-graymap pgm +image/x-portable-pixmap ppm +image/x-rgb rgb +image/x-tga tga +image/x-xbitmap xbm +image/x-xpixmap xpm +image/x-xwindowdump xwd +inode/blockdevice +inode/chardevice +inode/directory +inode/directory-locked +inode/fifo +inode/socket +message/CPIM +message/cpim +message/delivery-status +message/disposition-notification +message/example +message/external-body +message/feedback-report +message/global +message/global-delivery-status +message/global-disposition-notification +message/global-headers +message/http +message/imdn+xml +message/news +message/partial +message/rfc822 eml mime +message/s-http +message/sip +message/sipfrag +message/tracking-status +message/vnd.si.simp +model/example +model/iges iges igs +model/mesh mesh msh silo +model/vnd.collada+xml dae +model/vnd.dwf dwf +model/vnd.flatland.3dml +model/vnd.gdl gdl +model/vnd.gs-gdl +model/vnd.gs.gdl +model/vnd.gtw gtw +model/vnd.moml+xml +model/vnd.mts mts +model/vnd.parasolid.transmit.binary +model/vnd.parasolid.transmit.text +model/vnd.vtu vtu +model/vrml vrml wrl +model/x3d+binary x3db x3dbz +model/x3d+vrml x3dv x3dvz +model/x3d+xml x3d x3dz +multipart/alternative +multipart/appledouble +multipart/byteranges +multipart/digest +multipart/encrypted +multipart/example +multipart/form-data +multipart/header-set +multipart/mixed +multipart/parallel +multipart/related +multipart/report +multipart/signed +multipart/voice-message +text/cache-manifest appcache +text/calendar ics icz ifb +text/comma-separated-values csv +text/css css +text/csv csv +text/directory +text/dns +text/ecmascript +text/english +text/enriched +text/example +text/h323 323 +text/html htm html shtml +text/iuls uls +text/javascript +text/mathml mml +text/n3 n3 +text/parityfec +text/plain asc brf conf def diff in list log pot srt text txt +text/prs.fallenstein.rst +text/prs.lines.tag dsc +text/red +text/rfc822-headers +text/richtext rtx +text/rtf rtf +text/rtp-enc-aescm128 +text/rtx +text/scriptlet sct wsc +text/sgml sgm sgml +text/t140 +text/tab-separated-values tsv +text/texmacs tm ts +text/troff man me ms roff t tr +text/turtle ttl +text/ulpfec +text/uri-list uri uris urls +text/vcard vcard +text/vnd.DMClientScript +text/vnd.IPTC.NITF +text/vnd.IPTC.NewsML +text/vnd.abc +text/vnd.curl curl +text/vnd.curl.dcurl dcurl +text/vnd.curl.mcurl mcurl +text/vnd.curl.scurl scurl +text/vnd.dmclientscript +text/vnd.dvb.subtitle sub +text/vnd.esmertec.theme-descriptor +text/vnd.flatland.3dml +text/vnd.fly fly +text/vnd.fmi.flexstor flx +text/vnd.graphviz gv +text/vnd.in3d.3dml 3dml +text/vnd.in3d.spot spot +text/vnd.iptc.newsml +text/vnd.iptc.nitf +text/vnd.latex-z +text/vnd.motorola.reflex +text/vnd.ms-mediapackage +text/vnd.net2phone.commcenter.command +text/vnd.si.uricatalogue +text/vnd.sun.j2me.app-descriptor jad +text/vnd.trolltech.linguist +text/vnd.wap.si +text/vnd.wap.sl +text/vnd.wap.wml wml +text/vnd.wap.wmlscript wmls +text/x-asm asm s +text/x-bibtex bib +text/x-boo boo +text/x-c c cc cpp cxx dic h hh +text/x-c++hdr h++ hh hpp hxx +text/x-c++src c++ cc cpp cxx +text/x-chdr h +text/x-component htc +text/x-crontab +text/x-csh csh +text/x-csrc c +text/x-diff diff patch +text/x-dsrc d +text/x-fortran f f77 f90 for +text/x-haskell hs +text/x-java java +text/x-java-source java +text/x-lilypond ly +text/x-literate-haskell lhs +text/x-makefile +text/x-moc moc +text/x-nfo nfo +text/x-opml opml +text/x-pascal p pas +text/x-pcs-gcd gcd +text/x-perl pl pm +text/x-psp psp +text/x-python py +text/x-scala scala +text/x-server-parsed-html +text/x-setext etx +text/x-sfv sfv +text/x-sh sh +text/x-tcl tcl tk +text/x-tex cls ltx sty tex +text/x-uuencode uu +text/x-vcalendar vcs +text/x-vcard vcf +text/xml +text/xml-external-parsed-entity +video/1d-interleaved-parityfec +video/3gpp 3gp +video/3gpp-tt +video/3gpp2 3g2 +video/BMPEG +video/BT656 +video/CelB +video/DV +video/H261 +video/H263 +video/H263-1998 +video/H263-2000 +video/H264 +video/H264-RCDO +video/H264-SVC +video/JPEG +video/MJ2 +video/MP1S +video/MP2P +video/MP2T ts +video/MP4V-ES +video/MPV +video/SMPTE292M +video/annodex axv +video/bmpeg +video/bt656 +video/celb +video/dl dl +video/dv dif dv +video/example +video/fli fli +video/gl gl +video/h261 h261 +video/h263 h263 +video/h263-1998 +video/h263-2000 +video/h264 h264 +video/jpeg jpgv +video/jpeg2000 +video/jpm jpgm jpm +video/mj2 mj2 mjp2 +video/mp1s +video/mp2p +video/mp2t +video/mp4 mp4 mp4v mpg4 +video/mp4v-es +video/mpeg m1v m2v mpe mpeg mpg +video/mpeg4-generic +video/mpv +video/nv +video/ogg ogv +video/parityfec +video/pointer +video/quicktime mov qt +video/raptorfec +video/raw +video/rtp-enc-aescm128 +video/rtx +video/smpte292m +video/ulpfec +video/vc1 +video/vnd.CCTV +video/vnd.cctv +video/vnd.dece.hd uvh uvvh +video/vnd.dece.mobile uvm uvvm +video/vnd.dece.mp4 +video/vnd.dece.pd uvp uvvp +video/vnd.dece.sd uvs uvvs +video/vnd.dece.video uvv uvvv +video/vnd.directv.mpeg +video/vnd.directv.mpeg-tts +video/vnd.dlna.mpeg-tts +video/vnd.dvb.file dvb +video/vnd.fvt fvt +video/vnd.hns.video +video/vnd.iptvforum.1dparityfec-1010 +video/vnd.iptvforum.1dparityfec-2005 +video/vnd.iptvforum.2dparityfec-1010 +video/vnd.iptvforum.2dparityfec-2005 +video/vnd.iptvforum.ttsavc +video/vnd.iptvforum.ttsmpeg2 +video/vnd.motorola.video +video/vnd.motorola.videop +video/vnd.mpegurl m4u mxu +video/vnd.ms-playready.media.pyv pyv +video/vnd.mts +video/vnd.nokia.interleaved-multimedia +video/vnd.nokia.videovoip +video/vnd.objectvideo +video/vnd.sealed.mpeg1 +video/vnd.sealed.mpeg4 +video/vnd.sealed.swf +video/vnd.sealedmedia.softseal.mov +video/vnd.uvvu.mp4 uvu uvvu +video/vnd.vivo viv +video/webm webm +video/x-f4v f4v +video/x-fli fli +video/x-flv flv +video/x-la-asf lsf lsx +video/x-m4v m4v +video/x-matroska mk3d mks mkv mpv +video/x-mng mng +video/x-ms-asf asf asx +video/x-ms-vob vob +video/x-ms-wm wm +video/x-ms-wmv wmv +video/x-ms-wmx wmx +video/x-ms-wvx wvx +video/x-msvideo avi +video/x-sgi-movie movie +video/x-smv smv +x-conference/x-cooltalk ice +x-epoc/x-sisx-app sisx +x-world/x-vrml vrm vrml wrl diff --git a/core/baselayout/files/os-release b/core/baselayout/files/os-release new file mode 100644 index 00000000..51703ba2 --- /dev/null +++ b/core/baselayout/files/os-release @@ -0,0 +1,6 @@ +NAME="Carbs Linux" +PRETTY_NAME="Carbs Linux" +ID=carbs +BUILD_ID=rolling +HOME_URL="https://carbslinux.org" +DOCUMENTATION_URL="https://carbslinux.org" diff --git a/core/baselayout/files/passwd b/core/baselayout/files/passwd new file mode 100644 index 00000000..1edbef6c --- /dev/null +++ b/core/baselayout/files/passwd @@ -0,0 +1,2 @@ +root:x:0:0:root:/root:/bin/sh +nobody:x:99:99:Unprivileged User:/dev/null:/bin/false diff --git a/core/baselayout/files/profile b/core/baselayout/files/profile new file mode 100644 index 00000000..8e5fcd75 --- /dev/null +++ b/core/baselayout/files/profile @@ -0,0 +1,16 @@ +# /etc/profile +# +# System wide environment and startup programs. + +# Set default path (/usr/sbin:/sbin:/bin included for non-KISS Linux chroots). +export PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin + +# Set default umask. +umask 022 + +# Load profiles from /etc/profile.d +for file in /etc/profile.d/*.sh; do + [ -r "$file" ] && . "$file" +done + +unset file diff --git a/core/baselayout/files/securetty b/core/baselayout/files/securetty new file mode 100644 index 00000000..70146044 --- /dev/null +++ b/core/baselayout/files/securetty @@ -0,0 +1,26 @@ +console +vc/1 +vc/2 +vc/3 +vc/4 +vc/5 +vc/6 +vc/7 +vc/8 +vc/9 +vc/10 +vc/11 +tty1 +tty2 +tty3 +tty4 +tty5 +tty6 +tty7 +tty8 +tty9 +tty10 +tty11 +ttyS0 +ttyAMA0 +ttyUSB0 diff --git a/core/baselayout/files/shadow b/core/baselayout/files/shadow new file mode 100644 index 00000000..7edfd69b --- /dev/null +++ b/core/baselayout/files/shadow @@ -0,0 +1 @@ +root::14871:::::: diff --git a/core/baselayout/files/shells b/core/baselayout/files/shells new file mode 100644 index 00000000..15eb3942 --- /dev/null +++ b/core/baselayout/files/shells @@ -0,0 +1,4 @@ +# Pathnames of valid login shells. +# See shells(5) for details. + +/bin/sh diff --git a/core/baselayout/sources b/core/baselayout/sources new file mode 100644 index 00000000..abe0bf09 --- /dev/null +++ b/core/baselayout/sources @@ -0,0 +1,13 @@ +files/crypttab +files/fstab +files/group +files/host.conf +files/hosts +files/issue +files/mime.types +files/os-release +files/passwd +files/profile +files/securetty +files/shadow +files/shells diff --git a/core/baselayout/version b/core/baselayout/version new file mode 100644 index 00000000..2fb73a07 --- /dev/null +++ b/core/baselayout/version @@ -0,0 +1 @@ +1 1 diff --git a/core/binutils/build b/core/binutils/build new file mode 100755 index 00000000..361d7126 --- /dev/null +++ b/core/binutils/build @@ -0,0 +1,14 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --build=x86_64-pc-linux-musl \ + --host=x86_64-pc-linux-musl \ + --enable-targets=x86_64-pep \ + --disable-multilib \ + --disable-werror \ + --with-mmap \ + --with-system-zlib + +make +make DESTDIR="$1" install diff --git a/core/binutils/checksums b/core/binutils/checksums new file mode 100644 index 00000000..0f6829ea --- /dev/null +++ b/core/binutils/checksums @@ -0,0 +1 @@ +ab66fc2d1c3ec0359b8e08843c9f33b63e8707efdff5e4cc5c200eae24722cbf binutils-2.33.1.tar.xz diff --git a/core/binutils/depends b/core/binutils/depends new file mode 100644 index 00000000..fd0e8f1f --- /dev/null +++ b/core/binutils/depends @@ -0,0 +1,3 @@ +bison make +flex +zlib diff --git a/core/binutils/sources b/core/binutils/sources new file mode 100644 index 00000000..b42cb8a2 --- /dev/null +++ b/core/binutils/sources @@ -0,0 +1 @@ +https://ftp.gnu.org/gnu/binutils/binutils-2.33.1.tar.xz diff --git a/core/binutils/version b/core/binutils/version new file mode 100644 index 00000000..8475917b --- /dev/null +++ b/core/binutils/version @@ -0,0 +1 @@ +2.33.1 1 diff --git a/core/bison/build b/core/bison/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/core/bison/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/core/bison/checksums b/core/bison/checksums new file mode 100644 index 00000000..05c5dd3d --- /dev/null +++ b/core/bison/checksums @@ -0,0 +1 @@ +27d05534699735dc69e86add5b808d6cb35900ad3fd63fa82e3eb644336abfa0 bison-3.4.2.tar.xz diff --git a/core/bison/depends b/core/bison/depends new file mode 100644 index 00000000..3e9da3a6 --- /dev/null +++ b/core/bison/depends @@ -0,0 +1,2 @@ +m4 +perl make diff --git a/core/bison/sources b/core/bison/sources new file mode 100644 index 00000000..aad281b3 --- /dev/null +++ b/core/bison/sources @@ -0,0 +1 @@ +https://ftp.gnu.org/gnu/bison/bison-3.4.2.tar.xz diff --git a/core/bison/version b/core/bison/version new file mode 100644 index 00000000..7675fd4a --- /dev/null +++ b/core/bison/version @@ -0,0 +1 @@ +3.4.2 1 diff --git a/core/busybox/build b/core/busybox/build new file mode 100755 index 00000000..5625cecb --- /dev/null +++ b/core/busybox/build @@ -0,0 +1,35 @@ +#!/bin/sh -e + +# Build and install regular busybox. +# This excludes utilities which require 'suid' to function. +make CC="${CC:-gcc}" +make CONFIG_PREFIX="$1/usr" install + +# Rename the binary temporarily. +mv "$1/usr/bin/busybox" "$1/usr/bin/busybox-nosuid" + +# Build and install suid busybox. +# This _only_ includes utlities which require 'suid' to function. +cp -f .config-suid .config +make CC="${CC:-gcc}" +make CONFIG_PREFIX="$1/usr" install + +# Aptly name the busybox binaries. +mv "$1/usr/bin/busybox" "$1/usr/bin/busybox-suid" +mv "$1/usr/bin/busybox-nosuid" "$1/usr/bin/busybox" + +# Install the non-suid symlinks. +"$1/usr/bin/busybox" --list | while read -r bin; do + ln -s busybox "$1/usr/bin/$bin" +done + +# Install the suid symlinks. +"$1/usr/bin/busybox-suid" --list | while read -r bin; do + ln -s busybox-suid "$1/usr/bin/$bin" +done + +# Set suid on busybox suid. +chmod u+s "$1/usr/bin/busybox-suid" + +# Install runit services +install -Dm755 acpid.run "$1/etc/sv/acpid/run" diff --git a/core/busybox/checksums b/core/busybox/checksums new file mode 100644 index 00000000..580af57b --- /dev/null +++ b/core/busybox/checksums @@ -0,0 +1 @@ +d0f940a72f648943c1f2211e0e3117387c31d765137d92bd8284a3fb9752a998 busybox-1.31.1.tar.bz2 diff --git a/core/busybox/depends b/core/busybox/depends new file mode 100644 index 00000000..49b59d3f --- /dev/null +++ b/core/busybox/depends @@ -0,0 +1,4 @@ +bzip2 +gzip +libressl make +linux-headers make diff --git a/core/busybox/files/.config b/core/busybox/files/.config new file mode 100644 index 00000000..afb1ee48 --- /dev/null +++ b/core/busybox/files/.config @@ -0,0 +1,1175 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.31.1 +# Mon Dec 9 15:00:50 2019 +# +CONFIG_HAVE_DOT_CONFIG=y + +# +# Settings +# +CONFIG_DESKTOP=y +# CONFIG_EXTRA_COMPAT is not set +# CONFIG_FEDORA_COMPAT is not set +CONFIG_INCLUDE_SUSv2=y +CONFIG_LONG_OPTS=y +CONFIG_SHOW_USAGE=y +CONFIG_FEATURE_VERBOSE_USAGE=y +CONFIG_FEATURE_COMPRESS_USAGE=y +CONFIG_LFS=y +# CONFIG_PAM is not set +CONFIG_FEATURE_DEVPTS=y +CONFIG_FEATURE_UTMP=y +CONFIG_FEATURE_WTMP=y +CONFIG_FEATURE_PIDFILE=y +CONFIG_PID_FILE_PATH="/var/run" +CONFIG_BUSYBOX=y +CONFIG_FEATURE_SHOW_SCRIPT=y +CONFIG_FEATURE_INSTALLER=y +# CONFIG_INSTALL_NO_USR is not set +# CONFIG_FEATURE_SUID is not set +# CONFIG_FEATURE_SUID_CONFIG is not set +# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set +# CONFIG_FEATURE_PREFER_APPLETS is not set +CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_SYSLOG_INFO=y +CONFIG_FEATURE_SYSLOG=y +CONFIG_PLATFORM_LINUX=y + +# +# Build Options +# +CONFIG_STATIC=y +# CONFIG_PIE is not set +# CONFIG_NOMMU is not set +# CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set +# CONFIG_FEATURE_INDIVIDUAL is not set +# CONFIG_FEATURE_SHARED_BUSYBOX is not set +CONFIG_CROSS_COMPILER_PREFIX="" +CONFIG_SYSROOT="" +CONFIG_EXTRA_CFLAGS="" +CONFIG_EXTRA_LDFLAGS="" +CONFIG_EXTRA_LDLIBS="" +CONFIG_USE_PORTABLE_CODE=y +CONFIG_STACK_OPTIMIZATION_386=y + +# +# Installation Options ("make install" behavior) +# +# CONFIG_INSTALL_APPLET_SYMLINKS is not set +# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set +CONFIG_INSTALL_APPLET_DONT=y +# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set +# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set +# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set +CONFIG_PREFIX="./_install" + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_DEBUG_SANITIZE is not set +# CONFIG_UNIT_TEST is not set +# CONFIG_WERROR is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set + +# +# Library Tuning +# +# CONFIG_FEATURE_USE_BSS_TAIL is not set +# CONFIG_FLOAT_DURATION is not set +# CONFIG_FEATURE_RTMINMAX is not set +# CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS is not set +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_PASSWORD_MINLEN=6 +CONFIG_MD5_SMALL=1 +CONFIG_SHA3_SMALL=1 +CONFIG_FEATURE_FAST_TOP=y +# CONFIG_FEATURE_ETC_NETWORKS is not set +# CONFIG_FEATURE_ETC_SERVICES is not set +# CONFIG_FEATURE_EDITING is not set +CONFIG_FEATURE_EDITING_MAX_LEN=0 +# CONFIG_FEATURE_EDITING_VI is not set +CONFIG_FEATURE_EDITING_HISTORY=0 +# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set +# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set +# CONFIG_FEATURE_REVERSE_SEARCH is not set +# CONFIG_FEATURE_TAB_COMPLETION is not set +# CONFIG_FEATURE_USERNAME_COMPLETION is not set +# CONFIG_FEATURE_EDITING_FANCY_PROMPT is not set +# CONFIG_FEATURE_EDITING_WINCH is not set +# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set +# CONFIG_LOCALE_SUPPORT is not set +CONFIG_UNICODE_SUPPORT=y +# CONFIG_UNICODE_USING_LOCALE is not set +# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set +CONFIG_SUBST_WCHAR=63 +CONFIG_LAST_SUPPORTED_WCHAR=767 +CONFIG_UNICODE_COMBINING_WCHARS=y +CONFIG_UNICODE_WIDE_WCHARS=y +# CONFIG_UNICODE_BIDI_SUPPORT is not set +# CONFIG_UNICODE_NEUTRAL_TABLE is not set +# CONFIG_UNICODE_PRESERVE_BROKEN is not set +CONFIG_FEATURE_NON_POSIX_CP=y +CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y +CONFIG_FEATURE_USE_SENDFILE=y +CONFIG_FEATURE_COPYBUF_KB=4 +CONFIG_FEATURE_SKIP_ROOTFS=y +CONFIG_MONOTONIC_SYSCALL=y +CONFIG_IOCTL_HEX2STR_ERROR=y +CONFIG_FEATURE_HWIB=y + +# +# Applets +# + +# +# Archival Utilities +# +CONFIG_FEATURE_SEAMLESS_XZ=y +CONFIG_FEATURE_SEAMLESS_LZMA=y +CONFIG_FEATURE_SEAMLESS_BZ2=y +CONFIG_FEATURE_SEAMLESS_GZ=y +CONFIG_FEATURE_SEAMLESS_Z=y +# CONFIG_AR is not set +# CONFIG_FEATURE_AR_LONG_FILENAMES is not set +# CONFIG_FEATURE_AR_CREATE is not set +# CONFIG_UNCOMPRESS is not set +CONFIG_GUNZIP=y +# CONFIG_ZCAT is not set +CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y +CONFIG_BUNZIP2=y +# CONFIG_BZCAT is not set +# CONFIG_UNLZMA is not set +# CONFIG_LZCAT is not set +# CONFIG_LZMA is not set +CONFIG_UNXZ=y +# CONFIG_XZCAT is not set +CONFIG_XZ=y +CONFIG_BZIP2=y +CONFIG_BZIP2_SMALL=8 +CONFIG_FEATURE_BZIP2_DECOMPRESS=y +# CONFIG_CPIO is not set +# CONFIG_FEATURE_CPIO_O is not set +# CONFIG_FEATURE_CPIO_P is not set +# CONFIG_DPKG is not set +# CONFIG_DPKG_DEB is not set +CONFIG_GZIP=y +CONFIG_FEATURE_GZIP_LONG_OPTIONS=y +CONFIG_GZIP_FAST=0 +# CONFIG_FEATURE_GZIP_LEVELS is not set +CONFIG_FEATURE_GZIP_DECOMPRESS=y +# CONFIG_LZOP is not set +# CONFIG_UNLZOP is not set +# CONFIG_LZOPCAT is not set +# CONFIG_LZOP_COMPR_HIGH is not set +# CONFIG_RPM is not set +# CONFIG_RPM2CPIO is not set +CONFIG_TAR=y +CONFIG_FEATURE_TAR_LONG_OPTIONS=y +CONFIG_FEATURE_TAR_CREATE=y +CONFIG_FEATURE_TAR_AUTODETECT=y +CONFIG_FEATURE_TAR_FROM=y +CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y +CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y +CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y +CONFIG_FEATURE_TAR_TO_COMMAND=y +CONFIG_FEATURE_TAR_UNAME_GNAME=y +CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y +# CONFIG_FEATURE_TAR_SELINUX is not set +CONFIG_UNZIP=y +CONFIG_FEATURE_UNZIP_CDF=y +CONFIG_FEATURE_UNZIP_BZIP2=y +CONFIG_FEATURE_UNZIP_LZMA=y +CONFIG_FEATURE_UNZIP_XZ=y +# CONFIG_FEATURE_LZMA_FAST is not set + +# +# Coreutils +# +CONFIG_BASENAME=y +CONFIG_CAT=y +CONFIG_FEATURE_CATN=y +# CONFIG_FEATURE_CATV is not set +CONFIG_CHGRP=y +CONFIG_CHMOD=y +CONFIG_CHOWN=y +CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y +CONFIG_CHROOT=y +CONFIG_CKSUM=y +CONFIG_COMM=y +CONFIG_CP=y +CONFIG_FEATURE_CP_LONG_OPTIONS=y +CONFIG_FEATURE_CP_REFLINK=y +CONFIG_CUT=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +CONFIG_FEATURE_DATE_NANO=y +CONFIG_FEATURE_DATE_COMPAT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_FEATURE_DD_STATUS=y +CONFIG_DF=y +CONFIG_FEATURE_DF_FANCY=y +CONFIG_DIRNAME=y +CONFIG_DOS2UNIX=y +CONFIG_UNIX2DOS=y +CONFIG_DU=y +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y +CONFIG_ENV=y +CONFIG_EXPAND=y +CONFIG_UNEXPAND=y +CONFIG_EXPR=y +CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FACTOR=y +CONFIG_FALSE=y +CONFIG_FOLD=y +CONFIG_HEAD=y +CONFIG_FEATURE_FANCY_HEAD=y +CONFIG_HOSTID=y +CONFIG_ID=y +CONFIG_GROUPS=y +CONFIG_INSTALL=y +CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +CONFIG_LINK=y +CONFIG_LN=y +CONFIG_LOGNAME=y +CONFIG_LS=y +CONFIG_FEATURE_LS_FILETYPES=y +CONFIG_FEATURE_LS_FOLLOWLINKS=y +CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_WIDTH=y +CONFIG_FEATURE_LS_SORTFILES=y +CONFIG_FEATURE_LS_TIMESTAMPS=y +CONFIG_FEATURE_LS_USERNAME=y +CONFIG_FEATURE_LS_COLOR=y +CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y +CONFIG_MD5SUM=y +CONFIG_SHA1SUM=y +CONFIG_SHA256SUM=y +CONFIG_SHA512SUM=y +CONFIG_SHA3SUM=y + +# +# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y +CONFIG_MKDIR=y +CONFIG_MKFIFO=y +CONFIG_MKNOD=y +CONFIG_MKTEMP=y +CONFIG_MV=y +CONFIG_NICE=y +CONFIG_NL=y +CONFIG_NOHUP=y +CONFIG_NPROC=y +CONFIG_OD=y +CONFIG_PASTE=y +CONFIG_PRINTENV=y +CONFIG_PRINTF=y +CONFIG_PWD=y +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y +CONFIG_REALPATH=y +CONFIG_RM=y +CONFIG_RMDIR=y +CONFIG_SEQ=y +CONFIG_SHRED=y +CONFIG_SHUF=y +CONFIG_SLEEP=y +CONFIG_FEATURE_FANCY_SLEEP=y +CONFIG_SORT=y +CONFIG_FEATURE_SORT_BIG=y +# CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set +CONFIG_SPLIT=y +CONFIG_FEATURE_SPLIT_FANCY=y +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_FEATURE_STAT_FILESYSTEM=y +CONFIG_STTY=y +CONFIG_SUM=y +CONFIG_SYNC=y +CONFIG_FEATURE_SYNC_FANCY=y +CONFIG_FSYNC=y +CONFIG_TAC=y +CONFIG_TAIL=y +CONFIG_FEATURE_FANCY_TAIL=y +CONFIG_TEE=y +CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TEST=y +CONFIG_TEST1=y +CONFIG_TEST2=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TIMEOUT=y +CONFIG_TOUCH=y +CONFIG_FEATURE_TOUCH_NODEREF=y +CONFIG_FEATURE_TOUCH_SUSV3=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y +CONFIG_TRUE=y +CONFIG_TRUNCATE=y +CONFIG_TTY=y +CONFIG_UNAME=y +CONFIG_UNAME_OSNAME="Carbs Linux" +CONFIG_BB_ARCH=y +CONFIG_UNIQ=y +CONFIG_UNLINK=y +CONFIG_USLEEP=y +CONFIG_UUDECODE=y +CONFIG_BASE64=y +CONFIG_UUENCODE=y +CONFIG_WC=y +CONFIG_FEATURE_WC_LARGE=y +CONFIG_WHO=y +CONFIG_W=y +CONFIG_USERS=y +CONFIG_WHOAMI=y +CONFIG_YES=y + +# +# Common options +# +CONFIG_FEATURE_VERBOSE=y + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y + +# +# Console Utilities +# +CONFIG_CHVT=y +CONFIG_CLEAR=y +CONFIG_DEALLOCVT=y +CONFIG_DUMPKMAP=y +# CONFIG_FGCONSOLE is not set +CONFIG_KBD_MODE=y +CONFIG_LOADFONT=y +CONFIG_SETFONT=y +CONFIG_FEATURE_SETFONT_TEXTUAL_MAP=y +CONFIG_DEFAULT_SETFONT_DIR="" + +# +# Common options for loadfont and setfont +# +CONFIG_FEATURE_LOADFONT_PSF2=y +CONFIG_FEATURE_LOADFONT_RAW=y +CONFIG_LOADKMAP=y +# CONFIG_OPENVT is not set +CONFIG_RESET=y +CONFIG_RESIZE=y +CONFIG_FEATURE_RESIZE_PRINT=y +CONFIG_SETCONSOLE=y +CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y +# CONFIG_SETKEYCODES is not set +CONFIG_SETLOGCONS=y +# CONFIG_SHOWKEY is not set + +# +# Debian Utilities +# +# CONFIG_PIPE_PROGRESS is not set +# CONFIG_RUN_PARTS is not set +# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set +# CONFIG_FEATURE_RUN_PARTS_FANCY is not set +# CONFIG_START_STOP_DAEMON is not set +# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set +# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set +CONFIG_WHICH=y + +# +# klibc-utils +# +# CONFIG_MINIPS is not set +# CONFIG_NUKE is not set +# CONFIG_RESUME is not set +# CONFIG_RUN_INIT is not set + +# +# Editors +# +CONFIG_AWK=y +CONFIG_FEATURE_AWK_LIBM=y +CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y +CONFIG_CMP=y +CONFIG_DIFF=y +CONFIG_FEATURE_DIFF_LONG_OPTIONS=y +CONFIG_FEATURE_DIFF_DIR=y +CONFIG_ED=y +CONFIG_PATCH=y +CONFIG_SED=y +CONFIG_VI=y +CONFIG_FEATURE_VI_MAX_LEN=4096 +# CONFIG_FEATURE_VI_8BIT is not set +CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_YANKMARK=y +CONFIG_FEATURE_VI_SEARCH=y +# CONFIG_FEATURE_VI_REGEX_SEARCH is not set +CONFIG_FEATURE_VI_USE_SIGNALS=y +CONFIG_FEATURE_VI_DOT_CMD=y +CONFIG_FEATURE_VI_READONLY=y +CONFIG_FEATURE_VI_SETOPTS=y +CONFIG_FEATURE_VI_SET=y +CONFIG_FEATURE_VI_WIN_RESIZE=y +CONFIG_FEATURE_VI_ASK_TERMINAL=y +CONFIG_FEATURE_VI_UNDO=y +CONFIG_FEATURE_VI_UNDO_QUEUE=y +CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256 +CONFIG_FEATURE_ALLOW_EXEC=y + +# +# Finding Utilities +# +CONFIG_FIND=y +CONFIG_FEATURE_FIND_PRINT0=y +CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_PERM=y +CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_EXECUTABLE=y +CONFIG_FEATURE_FIND_XDEV=y +CONFIG_FEATURE_FIND_MAXDEPTH=y +CONFIG_FEATURE_FIND_NEWER=y +CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_EXEC=y +CONFIG_FEATURE_FIND_EXEC_PLUS=y +CONFIG_FEATURE_FIND_USER=y +CONFIG_FEATURE_FIND_GROUP=y +CONFIG_FEATURE_FIND_NOT=y +CONFIG_FEATURE_FIND_DEPTH=y +CONFIG_FEATURE_FIND_PAREN=y +CONFIG_FEATURE_FIND_SIZE=y +CONFIG_FEATURE_FIND_PRUNE=y +CONFIG_FEATURE_FIND_QUIT=y +CONFIG_FEATURE_FIND_DELETE=y +CONFIG_FEATURE_FIND_PATH=y +CONFIG_FEATURE_FIND_REGEX=y +# CONFIG_FEATURE_FIND_CONTEXT is not set +CONFIG_FEATURE_FIND_LINKS=y +CONFIG_GREP=y +CONFIG_EGREP=y +CONFIG_FGREP=y +CONFIG_FEATURE_GREP_CONTEXT=y +CONFIG_XARGS=y +CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y +CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y +CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y +CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y +CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y +CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL=y +CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=y + +# +# Init Utilities +# +# CONFIG_BOOTCHARTD is not set +# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set +# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set +CONFIG_HALT=y +CONFIG_POWEROFF=y +CONFIG_REBOOT=y +CONFIG_FEATURE_WAIT_FOR_INIT=y +# CONFIG_FEATURE_CALL_TELINIT is not set +CONFIG_TELINIT_PATH="" +CONFIG_INIT=y +# CONFIG_LINUXRC is not set +CONFIG_FEATURE_USE_INITTAB=y +# CONFIG_FEATURE_KILL_REMOVED is not set +CONFIG_FEATURE_KILL_DELAY=0 +CONFIG_FEATURE_INIT_SCTTY=y +CONFIG_FEATURE_INIT_SYSLOG=y +CONFIG_FEATURE_INIT_QUIET=y +# CONFIG_FEATURE_INIT_COREDUMPS is not set +CONFIG_INIT_TERMINAL_TYPE="linux" +CONFIG_FEATURE_INIT_MODIFY_CMDLINE=y + +# +# Login/Password Management Utilities +# +CONFIG_FEATURE_SHADOWPASSWDS=y +CONFIG_USE_BB_PWD_GRP=y +CONFIG_USE_BB_SHADOW=y +CONFIG_USE_BB_CRYPT=y +CONFIG_USE_BB_CRYPT_SHA=y +CONFIG_ADD_SHELL=y +CONFIG_REMOVE_SHELL=y +CONFIG_ADDGROUP=y +CONFIG_FEATURE_ADDUSER_TO_GROUP=y +CONFIG_ADDUSER=y +# CONFIG_FEATURE_CHECK_NAMES is not set +CONFIG_LAST_ID=60000 +CONFIG_FIRST_SYSTEM_ID=100 +CONFIG_LAST_SYSTEM_ID=999 +# CONFIG_CHPASSWD is not set +CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des" +CONFIG_CRYPTPW=y +CONFIG_MKPASSWD=y +CONFIG_DELUSER=y +CONFIG_DELGROUP=y +CONFIG_FEATURE_DEL_USER_FROM_GROUP=y +CONFIG_GETTY=y +# CONFIG_LOGIN is not set +# CONFIG_LOGIN_SESSION_AS_CHILD is not set +# CONFIG_LOGIN_SCRIPTS is not set +# CONFIG_FEATURE_NOLOGIN is not set +# CONFIG_FEATURE_SECURETTY is not set +# CONFIG_PASSWD is not set +# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set +# CONFIG_SU is not set +# CONFIG_FEATURE_SU_SYSLOG is not set +# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set +# CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set +CONFIG_SULOGIN=y +# CONFIG_VLOCK is not set + +# +# Linux Ext2 FS Progs +# +# CONFIG_CHATTR is not set +# CONFIG_FSCK is not set +# CONFIG_LSATTR is not set +# CONFIG_TUNE2FS is not set + +# +# Linux Module Utilities +# +# CONFIG_MODPROBE_SMALL is not set +CONFIG_DEPMOD=y +CONFIG_INSMOD=y +CONFIG_LSMOD=y +CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y +CONFIG_MODINFO=y +CONFIG_MODPROBE=y +# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set +CONFIG_RMMOD=y + +# +# Options common to multiple modutils +# +CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS=y +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set +# CONFIG_FEATURE_2_4_MODULES is not set +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set +# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set +# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set +# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set +# CONFIG_FEATURE_MODUTILS_ALIAS is not set +# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set +CONFIG_DEFAULT_MODULES_DIR="/lib/modules" +CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" + +# +# Linux System Utilities +# +CONFIG_ACPID=y +CONFIG_FEATURE_ACPID_COMPAT=y +# CONFIG_BLKDISCARD is not set +# CONFIG_BLKID is not set +# CONFIG_FEATURE_BLKID_TYPE is not set +# CONFIG_BLOCKDEV is not set +# CONFIG_CAL is not set +# CONFIG_CHRT is not set +# CONFIG_DMESG is not set +# CONFIG_FEATURE_DMESG_PRETTY is not set +# CONFIG_EJECT is not set +# CONFIG_FEATURE_EJECT_SCSI is not set +# CONFIG_FALLOCATE is not set +# CONFIG_FATATTR is not set +# CONFIG_FBSET is not set +# CONFIG_FEATURE_FBSET_FANCY is not set +# CONFIG_FEATURE_FBSET_READMODE is not set +# CONFIG_FDFORMAT is not set +# CONFIG_FDISK is not set +# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set +# CONFIG_FEATURE_FDISK_WRITABLE is not set +# CONFIG_FEATURE_AIX_LABEL is not set +# CONFIG_FEATURE_SGI_LABEL is not set +# CONFIG_FEATURE_SUN_LABEL is not set +# CONFIG_FEATURE_OSF_LABEL is not set +# CONFIG_FEATURE_GPT_LABEL is not set +# CONFIG_FEATURE_FDISK_ADVANCED is not set +# CONFIG_FINDFS is not set +# CONFIG_FLOCK is not set +# CONFIG_FDFLUSH is not set +# CONFIG_FREERAMDISK is not set +# CONFIG_FSCK_MINIX is not set +# CONFIG_FSFREEZE is not set +# CONFIG_FSTRIM is not set +CONFIG_GETOPT=y +CONFIG_FEATURE_GETOPT_LONG=y +# CONFIG_HEXDUMP is not set +# CONFIG_FEATURE_HEXDUMP_REVERSE is not set +# CONFIG_HD is not set +# CONFIG_XXD is not set +# CONFIG_HWCLOCK is not set +# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set +# CONFIG_IONICE is not set +# CONFIG_IPCRM is not set +# CONFIG_IPCS is not set +# CONFIG_LAST is not set +# CONFIG_FEATURE_LAST_FANCY is not set +# CONFIG_LOSETUP is not set +CONFIG_LSPCI=y +CONFIG_LSUSB=y +# CONFIG_MDEV is not set +# CONFIG_FEATURE_MDEV_CONF is not set +# CONFIG_FEATURE_MDEV_RENAME is not set +# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set +# CONFIG_FEATURE_MDEV_EXEC is not set +# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set +# CONFIG_FEATURE_MDEV_DAEMON is not set +# CONFIG_MESG is not set +# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set +# CONFIG_MKE2FS is not set +# CONFIG_MKFS_EXT2 is not set +# CONFIG_MKFS_MINIX is not set +# CONFIG_FEATURE_MINIX2 is not set +# CONFIG_MKFS_REISER is not set +# CONFIG_MKDOSFS is not set +# CONFIG_MKFS_VFAT is not set +# CONFIG_MKSWAP is not set +# CONFIG_FEATURE_MKSWAP_UUID is not set +# CONFIG_MORE is not set +# CONFIG_MOUNT is not set +# CONFIG_FEATURE_MOUNT_FAKE is not set +# CONFIG_FEATURE_MOUNT_VERBOSE is not set +# CONFIG_FEATURE_MOUNT_HELPERS is not set +# CONFIG_FEATURE_MOUNT_LABEL is not set +# CONFIG_FEATURE_MOUNT_NFS is not set +# CONFIG_FEATURE_MOUNT_CIFS is not set +# CONFIG_FEATURE_MOUNT_FLAGS is not set +# CONFIG_FEATURE_MOUNT_FSTAB is not set +# CONFIG_FEATURE_MOUNT_OTHERTAB is not set +# CONFIG_MOUNTPOINT is not set +CONFIG_NOLOGIN=y +CONFIG_NOLOGIN_DEPENDENCIES=y +# CONFIG_NSENTER is not set +# CONFIG_PIVOT_ROOT is not set +# CONFIG_RDATE is not set +# CONFIG_RDEV is not set +# CONFIG_READPROFILE is not set +# CONFIG_RENICE is not set +# CONFIG_REV is not set +# CONFIG_RTCWAKE is not set +# CONFIG_SCRIPT is not set +# CONFIG_SCRIPTREPLAY is not set +# CONFIG_SETARCH is not set +# CONFIG_LINUX32 is not set +# CONFIG_LINUX64 is not set +# CONFIG_SETPRIV is not set +# CONFIG_FEATURE_SETPRIV_DUMP is not set +# CONFIG_FEATURE_SETPRIV_CAPABILITIES is not set +# CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES is not set +# CONFIG_SETSID is not set +# CONFIG_SWAPON is not set +# CONFIG_FEATURE_SWAPON_DISCARD is not set +# CONFIG_FEATURE_SWAPON_PRI is not set +# CONFIG_SWAPOFF is not set +# CONFIG_FEATURE_SWAPONOFF_LABEL is not set +# CONFIG_SWITCH_ROOT is not set +# CONFIG_TASKSET is not set +# CONFIG_FEATURE_TASKSET_FANCY is not set +# CONFIG_UEVENT is not set +# CONFIG_UMOUNT is not set +# CONFIG_FEATURE_UMOUNT_ALL is not set +# CONFIG_UNSHARE is not set +# CONFIG_WALL is not set +# CONFIG_FEATURE_MOUNT_LOOP is not set +# CONFIG_FEATURE_MOUNT_LOOP_CREATE is not set +# CONFIG_FEATURE_MTAB_SUPPORT is not set +# CONFIG_VOLUMEID is not set +# CONFIG_FEATURE_VOLUMEID_BCACHE is not set +# CONFIG_FEATURE_VOLUMEID_BTRFS is not set +# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set +# CONFIG_FEATURE_VOLUMEID_EXFAT is not set +# CONFIG_FEATURE_VOLUMEID_EXT is not set +# CONFIG_FEATURE_VOLUMEID_F2FS is not set +# CONFIG_FEATURE_VOLUMEID_FAT is not set +# CONFIG_FEATURE_VOLUMEID_HFS is not set +# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set +# CONFIG_FEATURE_VOLUMEID_JFS is not set +# CONFIG_FEATURE_VOLUMEID_LFS is not set +# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set +# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set +# CONFIG_FEATURE_VOLUMEID_LUKS is not set +# CONFIG_FEATURE_VOLUMEID_MINIX is not set +# CONFIG_FEATURE_VOLUMEID_NILFS is not set +# CONFIG_FEATURE_VOLUMEID_NTFS is not set +# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set +# CONFIG_FEATURE_VOLUMEID_REISERFS is not set +# CONFIG_FEATURE_VOLUMEID_ROMFS is not set +# CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set +# CONFIG_FEATURE_VOLUMEID_SYSV is not set +# CONFIG_FEATURE_VOLUMEID_UBIFS is not set +# CONFIG_FEATURE_VOLUMEID_UDF is not set +# CONFIG_FEATURE_VOLUMEID_XFS is not set + +# +# Miscellaneous Utilities +# +# CONFIG_ADJTIMEX is not set +# CONFIG_BBCONFIG is not set +# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set +CONFIG_BC=y +CONFIG_DC=y +CONFIG_FEATURE_DC_BIG=y +# CONFIG_FEATURE_DC_LIBM is not set +CONFIG_FEATURE_BC_INTERACTIVE=y +CONFIG_FEATURE_BC_LONG_OPTIONS=y +# CONFIG_BEEP is not set +CONFIG_FEATURE_BEEP_FREQ=0 +CONFIG_FEATURE_BEEP_LENGTH_MS=0 +# CONFIG_CHAT is not set +# CONFIG_FEATURE_CHAT_NOFAIL is not set +# CONFIG_FEATURE_CHAT_TTY_HIFI is not set +# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set +# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set +# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set +# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set +# CONFIG_FEATURE_CHAT_CLR_ABORT is not set +# CONFIG_CONSPY is not set +# CONFIG_CROND is not set +# CONFIG_FEATURE_CROND_D is not set +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +# CONFIG_FEATURE_CROND_SPECIAL_TIMES is not set +CONFIG_FEATURE_CROND_DIR="" +# CONFIG_CRONTAB is not set +# CONFIG_DEVFSD is not set +# CONFIG_DEVFSD_MODLOAD is not set +# CONFIG_DEVFSD_FG_NP is not set +# CONFIG_DEVFSD_VERBOSE is not set +# CONFIG_FEATURE_DEVFS is not set +# CONFIG_DEVMEM is not set +# CONFIG_FBSPLASH is not set +# CONFIG_FLASH_ERASEALL is not set +# CONFIG_FLASH_LOCK is not set +# CONFIG_FLASH_UNLOCK is not set +# CONFIG_FLASHCP is not set +# CONFIG_HDPARM is not set +# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set +# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set +# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set +CONFIG_HEXEDIT=y +# CONFIG_I2CGET is not set +# CONFIG_I2CSET is not set +# CONFIG_I2CDUMP is not set +# CONFIG_I2CDETECT is not set +# CONFIG_I2CTRANSFER is not set +# CONFIG_INOTIFYD is not set +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_TRUNCATE=y +CONFIG_FEATURE_LESS_MARKS=y +CONFIG_FEATURE_LESS_REGEXP=y +CONFIG_FEATURE_LESS_WINCH=y +CONFIG_FEATURE_LESS_ASK_TERMINAL=y +CONFIG_FEATURE_LESS_DASHCMD=y +CONFIG_FEATURE_LESS_LINENUMS=y +CONFIG_FEATURE_LESS_RAW=y +CONFIG_FEATURE_LESS_ENV=y +# CONFIG_LSSCSI is not set +CONFIG_MAKEDEVS=y +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set +CONFIG_FEATURE_MAKEDEVS_TABLE=y +# CONFIG_MAN is not set +# CONFIG_MICROCOM is not set +# CONFIG_MT is not set +# CONFIG_NANDWRITE is not set +# CONFIG_NANDDUMP is not set +CONFIG_PARTPROBE=y +# CONFIG_RAIDAUTORUN is not set +CONFIG_READAHEAD=y +# CONFIG_RFKILL is not set +CONFIG_RUNLEVEL=y +# CONFIG_RX is not set +# CONFIG_SETFATTR is not set +# CONFIG_SETSERIAL is not set +# CONFIG_STRINGS is not set +CONFIG_TIME=y +# CONFIG_TS is not set +# CONFIG_TTYSIZE is not set +# CONFIG_UBIATTACH is not set +# CONFIG_UBIDETACH is not set +# CONFIG_UBIMKVOL is not set +# CONFIG_UBIRMVOL is not set +# CONFIG_UBIRSVOL is not set +# CONFIG_UBIUPDATEVOL is not set +# CONFIG_UBIRENAME is not set +# CONFIG_VOLNAME is not set +# CONFIG_WATCHDOG is not set + +# +# Networking Utilities +# +CONFIG_FEATURE_IPV6=y +# CONFIG_FEATURE_UNIX_LOCAL is not set +CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y +# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +# CONFIG_FEATURE_TLS_SHA1 is not set +CONFIG_ARP=y +CONFIG_ARPING=y +CONFIG_BRCTL=y +CONFIG_FEATURE_BRCTL_FANCY=y +CONFIG_FEATURE_BRCTL_SHOW=y +CONFIG_DNSD=y +CONFIG_ETHER_WAKE=y +CONFIG_FTPD=y +CONFIG_FEATURE_FTPD_WRITE=y +CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y +CONFIG_FEATURE_FTPD_AUTHENTICATION=y +CONFIG_FTPGET=y +CONFIG_FTPPUT=y +CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y +CONFIG_HOSTNAME=y +# CONFIG_DNSDOMAINNAME is not set +# CONFIG_HTTPD is not set +# CONFIG_FEATURE_HTTPD_RANGES is not set +# CONFIG_FEATURE_HTTPD_SETUID is not set +# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set +# CONFIG_FEATURE_HTTPD_CGI is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set +# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set +# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set +# CONFIG_FEATURE_HTTPD_PROXY is not set +# CONFIG_FEATURE_HTTPD_GZIP is not set +CONFIG_IFCONFIG=y +CONFIG_FEATURE_IFCONFIG_STATUS=y +CONFIG_FEATURE_IFCONFIG_SLIP=y +CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y +CONFIG_FEATURE_IFCONFIG_HW=y +CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y +CONFIG_IFENSLAVE=y +CONFIG_IFPLUGD=y +CONFIG_IFUP=y +CONFIG_IFDOWN=y +CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" +CONFIG_FEATURE_IFUPDOWN_IP=y +CONFIG_FEATURE_IFUPDOWN_IPV4=y +CONFIG_FEATURE_IFUPDOWN_IPV6=y +CONFIG_FEATURE_IFUPDOWN_MAPPING=y +# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set +CONFIG_INETD=y +CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y +CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y +CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y +CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y +CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y +# CONFIG_FEATURE_INETD_RPC is not set +CONFIG_IP=y +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +CONFIG_IPTUNNEL=y +CONFIG_IPRULE=y +CONFIG_IPNEIGH=y +CONFIG_FEATURE_IP_ADDRESS=y +CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2" +CONFIG_FEATURE_IP_TUNNEL=y +CONFIG_FEATURE_IP_RULE=y +CONFIG_FEATURE_IP_NEIGH=y +# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set +CONFIG_IPCALC=y +CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y +CONFIG_FEATURE_IPCALC_FANCY=y +CONFIG_FAKEIDENTD=y +CONFIG_NAMEIF=y +CONFIG_FEATURE_NAMEIF_EXTENDED=y +CONFIG_NBDCLIENT=y +CONFIG_NC=y +CONFIG_NETCAT=y +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +CONFIG_NC_110_COMPAT=y +CONFIG_NETSTAT=y +CONFIG_FEATURE_NETSTAT_WIDE=y +CONFIG_FEATURE_NETSTAT_PRG=y +CONFIG_NSLOOKUP=y +CONFIG_FEATURE_NSLOOKUP_BIG=y +CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS=y +CONFIG_NTPD=y +CONFIG_FEATURE_NTPD_SERVER=y +CONFIG_FEATURE_NTPD_CONF=y +CONFIG_FEATURE_NTP_AUTH=y +# CONFIG_PING is not set +# CONFIG_PING6 is not set +# CONFIG_FEATURE_FANCY_PING is not set +CONFIG_PSCAN=y +CONFIG_ROUTE=y +# CONFIG_SLATTACH is not set +CONFIG_SSL_CLIENT=y +CONFIG_TC=y +CONFIG_FEATURE_TC_INGRESS=y +CONFIG_TCPSVD=y +CONFIG_UDPSVD=y +CONFIG_TELNET=y +CONFIG_FEATURE_TELNET_TTYPE=y +CONFIG_FEATURE_TELNET_AUTOLOGIN=y +CONFIG_FEATURE_TELNET_WIDTH=y +CONFIG_TELNETD=y +CONFIG_FEATURE_TELNETD_STANDALONE=y +CONFIG_FEATURE_TELNETD_INETD_WAIT=y +CONFIG_TFTP=y +CONFIG_FEATURE_TFTP_PROGRESS_BAR=y +CONFIG_FEATURE_TFTP_HPA_COMPAT=y +CONFIG_TFTPD=y +CONFIG_FEATURE_TFTP_GET=y +CONFIG_FEATURE_TFTP_PUT=y +CONFIG_FEATURE_TFTP_BLOCKSIZE=y +# CONFIG_TFTP_DEBUG is not set +CONFIG_TLS=y +# CONFIG_TRACEROUTE is not set +CONFIG_TRACEROUTE6=y +CONFIG_FEATURE_TRACEROUTE_VERBOSE=y +CONFIG_FEATURE_TRACEROUTE_USE_ICMP=y +CONFIG_TUNCTL=y +CONFIG_FEATURE_TUNCTL_UG=y +CONFIG_VCONFIG=y +CONFIG_WGET=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_TIMEOUT=y +CONFIG_FEATURE_WGET_HTTPS=y +CONFIG_FEATURE_WGET_OPENSSL=y +CONFIG_WHOIS=y +# CONFIG_ZCIP is not set +# CONFIG_UDHCPD is not set +# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +CONFIG_DHCPD_LEASES_FILE="" +# CONFIG_DUMPLEASES is not set +# CONFIG_DHCPRELAY is not set +# CONFIG_UDHCPC is not set +# CONFIG_FEATURE_UDHCPC_ARPING is not set +# CONFIG_FEATURE_UDHCPC_SANITIZEOPT is not set +CONFIG_UDHCPC_DEFAULT_SCRIPT="" +# CONFIG_UDHCPC6 is not set +# CONFIG_FEATURE_UDHCPC6_RFC3646 is not set +# CONFIG_FEATURE_UDHCPC6_RFC4704 is not set +# CONFIG_FEATURE_UDHCPC6_RFC4833 is not set +# CONFIG_FEATURE_UDHCPC6_RFC5970 is not set +# CONFIG_FEATURE_UDHCP_PORT is not set +CONFIG_UDHCP_DEBUG=0 +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0 +# CONFIG_FEATURE_UDHCP_RFC3397 is not set +# CONFIG_FEATURE_UDHCP_8021Q is not set +CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n" + +# +# Print Utilities +# +# CONFIG_LPD is not set +# CONFIG_LPR is not set +# CONFIG_LPQ is not set + +# +# Mail Utilities +# +# CONFIG_MAKEMIME is not set +# CONFIG_POPMAILDIR is not set +# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set +# CONFIG_REFORMIME is not set +# CONFIG_FEATURE_REFORMIME_COMPAT is not set +# CONFIG_SENDMAIL is not set +CONFIG_FEATURE_MIME_CHARSET="" + +# +# Process Utilities +# +CONFIG_FREE=y +CONFIG_FUSER=y +CONFIG_IOSTAT=y +CONFIG_KILL=y +CONFIG_KILLALL=y +CONFIG_KILLALL5=y +CONFIG_LSOF=y +CONFIG_MPSTAT=y +CONFIG_NMETER=y +CONFIG_PGREP=y +CONFIG_PKILL=y +CONFIG_PIDOF=y +CONFIG_FEATURE_PIDOF_SINGLE=y +CONFIG_FEATURE_PIDOF_OMIT=y +CONFIG_PMAP=y +CONFIG_POWERTOP=y +CONFIG_FEATURE_POWERTOP_INTERACTIVE=y +CONFIG_PS=y +# CONFIG_FEATURE_PS_WIDE is not set +# CONFIG_FEATURE_PS_LONG is not set +CONFIG_FEATURE_PS_TIME=y +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set +CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y +CONFIG_PSTREE=y +CONFIG_PWDX=y +CONFIG_SMEMCAP=y +CONFIG_BB_SYSCTL=y +CONFIG_TOP=y +CONFIG_FEATURE_TOP_INTERACTIVE=y +CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y +CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y +CONFIG_FEATURE_TOP_SMP_CPU=y +CONFIG_FEATURE_TOP_DECIMALS=y +CONFIG_FEATURE_TOP_SMP_PROCESS=y +CONFIG_FEATURE_TOPMEM=y +CONFIG_UPTIME=y +CONFIG_FEATURE_UPTIME_UTMP_SUPPORT=y +CONFIG_WATCH=y +CONFIG_FEATURE_SHOW_THREADS=y + +# +# Runit Utilities +# +CONFIG_CHPST=y +CONFIG_SETUIDGID=y +CONFIG_ENVUIDGID=y +CONFIG_ENVDIR=y +CONFIG_SOFTLIMIT=y +CONFIG_RUNSV=y +CONFIG_RUNSVDIR=y +CONFIG_FEATURE_RUNSVDIR_LOG=y +CONFIG_SV=y +CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service" +CONFIG_SVC=y +CONFIG_SVOK=y +CONFIG_SVLOGD=y +# CONFIG_CHCON is not set +# CONFIG_GETENFORCE is not set +# CONFIG_GETSEBOOL is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_MATCHPATHCON is not set +# CONFIG_RUNCON is not set +# CONFIG_SELINUXENABLED is not set +# CONFIG_SESTATUS is not set +# CONFIG_SETENFORCE is not set +# CONFIG_SETFILES is not set +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_RESTORECON is not set +# CONFIG_SETSEBOOL is not set + +# +# Shells +# +CONFIG_SH_IS_ASH=y +# CONFIG_SH_IS_HUSH is not set +# CONFIG_SH_IS_NONE is not set +# CONFIG_BASH_IS_ASH is not set +# CONFIG_BASH_IS_HUSH is not set +CONFIG_BASH_IS_NONE=y +CONFIG_ASH=y +# CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set +# CONFIG_ASH_INTERNAL_GLOB is not set +# CONFIG_ASH_BASH_COMPAT is not set +# CONFIG_ASH_BASH_SOURCE_CURDIR is not set +# CONFIG_ASH_BASH_NOT_FOUND_HOOK is not set +CONFIG_ASH_JOB_CONTROL=y +CONFIG_ASH_ALIAS=y +# CONFIG_ASH_RANDOM_SUPPORT is not set +CONFIG_ASH_EXPAND_PRMT=y +CONFIG_ASH_IDLE_TIMEOUT=y +# CONFIG_ASH_MAIL is not set +CONFIG_ASH_ECHO=y +CONFIG_ASH_PRINTF=y +CONFIG_ASH_TEST=y +CONFIG_ASH_HELP=y +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_CMDCMD=y +# CONFIG_CTTYHACK is not set +# CONFIG_HUSH is not set +# CONFIG_HUSH_BASH_COMPAT is not set +# CONFIG_HUSH_BRACE_EXPANSION is not set +# CONFIG_HUSH_LINENO_VAR is not set +# CONFIG_HUSH_BASH_SOURCE_CURDIR is not set +# CONFIG_HUSH_INTERACTIVE is not set +# CONFIG_HUSH_SAVEHISTORY is not set +# CONFIG_HUSH_JOB is not set +# CONFIG_HUSH_TICK is not set +# CONFIG_HUSH_IF is not set +# CONFIG_HUSH_LOOPS is not set +# CONFIG_HUSH_CASE is not set +# CONFIG_HUSH_FUNCTIONS is not set +# CONFIG_HUSH_LOCAL is not set +# CONFIG_HUSH_RANDOM_SUPPORT is not set +# CONFIG_HUSH_MODE_X is not set +# CONFIG_HUSH_ECHO is not set +# CONFIG_HUSH_PRINTF is not set +# CONFIG_HUSH_TEST is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_EXPORT is not set +# CONFIG_HUSH_EXPORT_N is not set +# CONFIG_HUSH_READONLY is not set +# CONFIG_HUSH_KILL is not set +# CONFIG_HUSH_WAIT is not set +# CONFIG_HUSH_COMMAND is not set +# CONFIG_HUSH_TRAP is not set +# CONFIG_HUSH_TYPE is not set +# CONFIG_HUSH_TIMES is not set +# CONFIG_HUSH_READ is not set +# CONFIG_HUSH_SET is not set +# CONFIG_HUSH_UNSET is not set +# CONFIG_HUSH_ULIMIT is not set +# CONFIG_HUSH_UMASK is not set +# CONFIG_HUSH_GETOPTS is not set +# CONFIG_HUSH_MEMLEAK is not set + +# +# Options common to all shells +# +CONFIG_FEATURE_SH_MATH=y +CONFIG_FEATURE_SH_MATH_64=y +CONFIG_FEATURE_SH_MATH_BASE=y +CONFIG_FEATURE_SH_EXTRA_QUIET=y +# CONFIG_FEATURE_SH_STANDALONE is not set +# CONFIG_FEATURE_SH_NOFORK is not set +CONFIG_FEATURE_SH_READ_FRAC=y +CONFIG_FEATURE_SH_HISTFILESIZE=y +CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS=y + +# +# System Logging Utilities +# +# CONFIG_KLOGD is not set +# CONFIG_FEATURE_KLOGD_KLOGCTL is not set +# CONFIG_LOGGER is not set +# CONFIG_LOGREAD is not set +# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set +# CONFIG_SYSLOGD is not set +# CONFIG_FEATURE_ROTATE_LOGFILE is not set +# CONFIG_FEATURE_REMOTE_LOG is not set +# CONFIG_FEATURE_SYSLOGD_DUP is not set +# CONFIG_FEATURE_SYSLOGD_CFG is not set +CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0 +# CONFIG_FEATURE_IPC_SYSLOG is not set +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0 +# CONFIG_FEATURE_KMSG_SYSLOG is not set diff --git a/core/busybox/files/.config-suid b/core/busybox/files/.config-suid new file mode 100644 index 00000000..7c71f89b --- /dev/null +++ b/core/busybox/files/.config-suid @@ -0,0 +1,1159 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.31.0 +# Wed Sep 18 12:37:29 2019 +# +CONFIG_HAVE_DOT_CONFIG=y + +# +# Settings +# +# CONFIG_DESKTOP is not set +# CONFIG_EXTRA_COMPAT is not set +# CONFIG_FEDORA_COMPAT is not set +# CONFIG_INCLUDE_SUSv2 is not set +# CONFIG_LONG_OPTS is not set +# CONFIG_SHOW_USAGE is not set +# CONFIG_FEATURE_VERBOSE_USAGE is not set +# CONFIG_FEATURE_COMPRESS_USAGE is not set +# CONFIG_LFS is not set +# CONFIG_PAM is not set +# CONFIG_FEATURE_DEVPTS is not set +# CONFIG_FEATURE_UTMP is not set +# CONFIG_FEATURE_WTMP is not set +# CONFIG_FEATURE_PIDFILE is not set +CONFIG_PID_FILE_PATH="" +CONFIG_BUSYBOX=y +CONFIG_FEATURE_SHOW_SCRIPT=y +CONFIG_FEATURE_INSTALLER=y +# CONFIG_INSTALL_NO_USR is not set +# CONFIG_FEATURE_SUID is not set +# CONFIG_FEATURE_SUID_CONFIG is not set +# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set +# CONFIG_FEATURE_PREFER_APPLETS is not set +CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_SYSLOG_INFO=y +CONFIG_FEATURE_SYSLOG=y +CONFIG_PLATFORM_LINUX=y + +# +# Build Options +# +CONFIG_STATIC=y +CONFIG_PIE=y +# CONFIG_NOMMU is not set +# CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set +# CONFIG_FEATURE_INDIVIDUAL is not set +# CONFIG_FEATURE_SHARED_BUSYBOX is not set +CONFIG_CROSS_COMPILER_PREFIX="" +CONFIG_SYSROOT="" +CONFIG_EXTRA_CFLAGS="" +CONFIG_EXTRA_LDFLAGS="" +CONFIG_EXTRA_LDLIBS="" +# CONFIG_USE_PORTABLE_CODE is not set +# CONFIG_STACK_OPTIMIZATION_386 is not set + +# +# Installation Options ("make install" behavior) +# +# CONFIG_INSTALL_APPLET_SYMLINKS is not set +# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set +CONFIG_INSTALL_APPLET_DONT=y +# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set +# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set +# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set +CONFIG_PREFIX="./_install" + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_DEBUG_SANITIZE is not set +# CONFIG_UNIT_TEST is not set +# CONFIG_WERROR is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set + +# +# Library Tuning +# +# CONFIG_FEATURE_USE_BSS_TAIL is not set +# CONFIG_FLOAT_DURATION is not set +# CONFIG_FEATURE_RTMINMAX is not set +# CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS is not set +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_PASSWORD_MINLEN=6 +CONFIG_MD5_SMALL=1 +CONFIG_SHA3_SMALL=1 +# CONFIG_FEATURE_FAST_TOP is not set +# CONFIG_FEATURE_ETC_NETWORKS is not set +# CONFIG_FEATURE_ETC_SERVICES is not set +# CONFIG_FEATURE_EDITING is not set +CONFIG_FEATURE_EDITING_MAX_LEN=0 +# CONFIG_FEATURE_EDITING_VI is not set +CONFIG_FEATURE_EDITING_HISTORY=0 +# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set +# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set +# CONFIG_FEATURE_REVERSE_SEARCH is not set +# CONFIG_FEATURE_TAB_COMPLETION is not set +# CONFIG_FEATURE_USERNAME_COMPLETION is not set +# CONFIG_FEATURE_EDITING_FANCY_PROMPT is not set +# CONFIG_FEATURE_EDITING_WINCH is not set +# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set +# CONFIG_LOCALE_SUPPORT is not set +# CONFIG_UNICODE_SUPPORT is not set +# CONFIG_UNICODE_USING_LOCALE is not set +# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set +CONFIG_SUBST_WCHAR=0 +CONFIG_LAST_SUPPORTED_WCHAR=0 +# CONFIG_UNICODE_COMBINING_WCHARS is not set +# CONFIG_UNICODE_WIDE_WCHARS is not set +# CONFIG_UNICODE_BIDI_SUPPORT is not set +# CONFIG_UNICODE_NEUTRAL_TABLE is not set +# CONFIG_UNICODE_PRESERVE_BROKEN is not set +# CONFIG_FEATURE_NON_POSIX_CP is not set +# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set +# CONFIG_FEATURE_USE_SENDFILE is not set +CONFIG_FEATURE_COPYBUF_KB=4 +# CONFIG_FEATURE_SKIP_ROOTFS is not set +# CONFIG_MONOTONIC_SYSCALL is not set +# CONFIG_IOCTL_HEX2STR_ERROR is not set +# CONFIG_FEATURE_HWIB is not set + +# +# Applets +# + +# +# Archival Utilities +# +# CONFIG_FEATURE_SEAMLESS_XZ is not set +# CONFIG_FEATURE_SEAMLESS_LZMA is not set +# CONFIG_FEATURE_SEAMLESS_BZ2 is not set +# CONFIG_FEATURE_SEAMLESS_GZ is not set +# CONFIG_FEATURE_SEAMLESS_Z is not set +# CONFIG_AR is not set +# CONFIG_FEATURE_AR_LONG_FILENAMES is not set +# CONFIG_FEATURE_AR_CREATE is not set +# CONFIG_UNCOMPRESS is not set +# CONFIG_GUNZIP is not set +# CONFIG_ZCAT is not set +# CONFIG_FEATURE_GUNZIP_LONG_OPTIONS is not set +# CONFIG_BUNZIP2 is not set +# CONFIG_BZCAT is not set +# CONFIG_UNLZMA is not set +# CONFIG_LZCAT is not set +# CONFIG_LZMA is not set +# CONFIG_UNXZ is not set +# CONFIG_XZCAT is not set +# CONFIG_XZ is not set +# CONFIG_BZIP2 is not set +CONFIG_BZIP2_SMALL=0 +# CONFIG_FEATURE_BZIP2_DECOMPRESS is not set +# CONFIG_CPIO is not set +# CONFIG_FEATURE_CPIO_O is not set +# CONFIG_FEATURE_CPIO_P is not set +# CONFIG_DPKG is not set +# CONFIG_DPKG_DEB is not set +# CONFIG_GZIP is not set +# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set +CONFIG_GZIP_FAST=0 +# CONFIG_FEATURE_GZIP_LEVELS is not set +# CONFIG_FEATURE_GZIP_DECOMPRESS is not set +# CONFIG_LZOP is not set +# CONFIG_UNLZOP is not set +# CONFIG_LZOPCAT is not set +# CONFIG_LZOP_COMPR_HIGH is not set +# CONFIG_RPM is not set +# CONFIG_RPM2CPIO is not set +# CONFIG_TAR is not set +# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set +# CONFIG_FEATURE_TAR_CREATE is not set +# CONFIG_FEATURE_TAR_AUTODETECT is not set +# CONFIG_FEATURE_TAR_FROM is not set +# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set +# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set +# CONFIG_FEATURE_TAR_GNU_EXTENSIONS is not set +# CONFIG_FEATURE_TAR_TO_COMMAND is not set +# CONFIG_FEATURE_TAR_UNAME_GNAME is not set +# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set +# CONFIG_FEATURE_TAR_SELINUX is not set +# CONFIG_UNZIP is not set +# CONFIG_FEATURE_UNZIP_CDF is not set +# CONFIG_FEATURE_UNZIP_BZIP2 is not set +# CONFIG_FEATURE_UNZIP_LZMA is not set +# CONFIG_FEATURE_UNZIP_XZ is not set +# CONFIG_FEATURE_LZMA_FAST is not set + +# +# Coreutils +# +# CONFIG_BASENAME is not set +# CONFIG_CAT is not set +# CONFIG_FEATURE_CATN is not set +# CONFIG_FEATURE_CATV is not set +# CONFIG_CHGRP is not set +# CONFIG_CHMOD is not set +# CONFIG_CHOWN is not set +# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set +# CONFIG_CHROOT is not set +# CONFIG_CKSUM is not set +# CONFIG_COMM is not set +# CONFIG_CP is not set +# CONFIG_FEATURE_CP_LONG_OPTIONS is not set +# CONFIG_FEATURE_CP_REFLINK is not set +# CONFIG_CUT is not set +# CONFIG_DATE is not set +# CONFIG_FEATURE_DATE_ISOFMT is not set +# CONFIG_FEATURE_DATE_NANO is not set +# CONFIG_FEATURE_DATE_COMPAT is not set +# CONFIG_DD is not set +# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set +# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set +# CONFIG_FEATURE_DD_IBS_OBS is not set +# CONFIG_FEATURE_DD_STATUS is not set +# CONFIG_DF is not set +# CONFIG_FEATURE_DF_FANCY is not set +# CONFIG_DIRNAME is not set +# CONFIG_DOS2UNIX is not set +# CONFIG_UNIX2DOS is not set +# CONFIG_DU is not set +# CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K is not set +# CONFIG_ECHO is not set +# CONFIG_FEATURE_FANCY_ECHO is not set +# CONFIG_ENV is not set +# CONFIG_EXPAND is not set +# CONFIG_UNEXPAND is not set +# CONFIG_EXPR is not set +# CONFIG_EXPR_MATH_SUPPORT_64 is not set +# CONFIG_FACTOR is not set +# CONFIG_FALSE is not set +# CONFIG_FOLD is not set +# CONFIG_HEAD is not set +# CONFIG_FEATURE_FANCY_HEAD is not set +# CONFIG_HOSTID is not set +# CONFIG_ID is not set +# CONFIG_GROUPS is not set +# CONFIG_INSTALL is not set +# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set +# CONFIG_LINK is not set +# CONFIG_LN is not set +# CONFIG_LOGNAME is not set +# CONFIG_LS is not set +# CONFIG_FEATURE_LS_FILETYPES is not set +# CONFIG_FEATURE_LS_FOLLOWLINKS is not set +# CONFIG_FEATURE_LS_RECURSIVE is not set +# CONFIG_FEATURE_LS_WIDTH is not set +# CONFIG_FEATURE_LS_SORTFILES is not set +# CONFIG_FEATURE_LS_TIMESTAMPS is not set +# CONFIG_FEATURE_LS_USERNAME is not set +# CONFIG_FEATURE_LS_COLOR is not set +# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set +# CONFIG_MD5SUM is not set +# CONFIG_SHA1SUM is not set +# CONFIG_SHA256SUM is not set +# CONFIG_SHA512SUM is not set +# CONFIG_SHA3SUM is not set +# CONFIG_FEATURE_MD5_SHA1_SUM_CHECK is not set +# CONFIG_MKDIR is not set +# CONFIG_MKFIFO is not set +# CONFIG_MKNOD is not set +# CONFIG_MKTEMP is not set +# CONFIG_MV is not set +# CONFIG_NICE is not set +# CONFIG_NL is not set +# CONFIG_NOHUP is not set +# CONFIG_NPROC is not set +# CONFIG_OD is not set +# CONFIG_PASTE is not set +# CONFIG_PRINTENV is not set +# CONFIG_PRINTF is not set +# CONFIG_PWD is not set +# CONFIG_READLINK is not set +# CONFIG_FEATURE_READLINK_FOLLOW is not set +# CONFIG_REALPATH is not set +# CONFIG_RM is not set +# CONFIG_RMDIR is not set +# CONFIG_SEQ is not set +# CONFIG_SHRED is not set +# CONFIG_SHUF is not set +# CONFIG_SLEEP is not set +# CONFIG_FEATURE_FANCY_SLEEP is not set +# CONFIG_SORT is not set +# CONFIG_FEATURE_SORT_BIG is not set +# CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set +# CONFIG_SPLIT is not set +# CONFIG_FEATURE_SPLIT_FANCY is not set +# CONFIG_STAT is not set +# CONFIG_FEATURE_STAT_FORMAT is not set +# CONFIG_FEATURE_STAT_FILESYSTEM is not set +# CONFIG_STTY is not set +# CONFIG_SUM is not set +# CONFIG_SYNC is not set +# CONFIG_FEATURE_SYNC_FANCY is not set +# CONFIG_FSYNC is not set +# CONFIG_TAC is not set +# CONFIG_TAIL is not set +# CONFIG_FEATURE_FANCY_TAIL is not set +# CONFIG_TEE is not set +# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set +# CONFIG_TEST is not set +# CONFIG_TEST1 is not set +# CONFIG_TEST2 is not set +# CONFIG_FEATURE_TEST_64 is not set +# CONFIG_TIMEOUT is not set +# CONFIG_TOUCH is not set +# CONFIG_FEATURE_TOUCH_NODEREF is not set +# CONFIG_FEATURE_TOUCH_SUSV3 is not set +# CONFIG_TR is not set +# CONFIG_FEATURE_TR_CLASSES is not set +# CONFIG_FEATURE_TR_EQUIV is not set +# CONFIG_TRUE is not set +# CONFIG_TRUNCATE is not set +# CONFIG_TTY is not set +# CONFIG_UNAME is not set +CONFIG_UNAME_OSNAME="" +# CONFIG_BB_ARCH is not set +# CONFIG_UNIQ is not set +# CONFIG_UNLINK is not set +# CONFIG_USLEEP is not set +# CONFIG_UUDECODE is not set +# CONFIG_BASE64 is not set +# CONFIG_UUENCODE is not set +# CONFIG_WC is not set +# CONFIG_FEATURE_WC_LARGE is not set +# CONFIG_WHO is not set +# CONFIG_W is not set +# CONFIG_USERS is not set +# CONFIG_WHOAMI is not set +# CONFIG_YES is not set + +# +# Common options +# +# CONFIG_FEATURE_VERBOSE is not set +# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set +# CONFIG_FEATURE_HUMAN_READABLE is not set + +# +# Console Utilities +# +# CONFIG_CHVT is not set +# CONFIG_CLEAR is not set +# CONFIG_DEALLOCVT is not set +# CONFIG_DUMPKMAP is not set +# CONFIG_FGCONSOLE is not set +# CONFIG_KBD_MODE is not set +# CONFIG_LOADFONT is not set +# CONFIG_SETFONT is not set +# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set +CONFIG_DEFAULT_SETFONT_DIR="" +# CONFIG_FEATURE_LOADFONT_PSF2 is not set +# CONFIG_FEATURE_LOADFONT_RAW is not set +# CONFIG_LOADKMAP is not set +# CONFIG_OPENVT is not set +# CONFIG_RESET is not set +# CONFIG_RESIZE is not set +# CONFIG_FEATURE_RESIZE_PRINT is not set +# CONFIG_SETCONSOLE is not set +# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set +# CONFIG_SETKEYCODES is not set +# CONFIG_SETLOGCONS is not set +# CONFIG_SHOWKEY is not set + +# +# Debian Utilities +# +# CONFIG_PIPE_PROGRESS is not set +# CONFIG_RUN_PARTS is not set +# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set +# CONFIG_FEATURE_RUN_PARTS_FANCY is not set +# CONFIG_START_STOP_DAEMON is not set +# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set +# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set +# CONFIG_WHICH is not set + +# +# klibc-utils +# +# CONFIG_MINIPS is not set +# CONFIG_NUKE is not set +# CONFIG_RESUME is not set +# CONFIG_RUN_INIT is not set + +# +# Editors +# +# CONFIG_AWK is not set +# CONFIG_FEATURE_AWK_LIBM is not set +# CONFIG_FEATURE_AWK_GNU_EXTENSIONS is not set +# CONFIG_CMP is not set +# CONFIG_DIFF is not set +# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set +# CONFIG_FEATURE_DIFF_DIR is not set +# CONFIG_ED is not set +# CONFIG_PATCH is not set +# CONFIG_SED is not set +# CONFIG_VI is not set +CONFIG_FEATURE_VI_MAX_LEN=0 +# CONFIG_FEATURE_VI_8BIT is not set +# CONFIG_FEATURE_VI_COLON is not set +# CONFIG_FEATURE_VI_YANKMARK is not set +# CONFIG_FEATURE_VI_SEARCH is not set +# CONFIG_FEATURE_VI_REGEX_SEARCH is not set +# CONFIG_FEATURE_VI_USE_SIGNALS is not set +# CONFIG_FEATURE_VI_DOT_CMD is not set +# CONFIG_FEATURE_VI_READONLY is not set +# CONFIG_FEATURE_VI_SETOPTS is not set +# CONFIG_FEATURE_VI_SET is not set +# CONFIG_FEATURE_VI_WIN_RESIZE is not set +# CONFIG_FEATURE_VI_ASK_TERMINAL is not set +# CONFIG_FEATURE_VI_UNDO is not set +# CONFIG_FEATURE_VI_UNDO_QUEUE is not set +CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=0 +# CONFIG_FEATURE_ALLOW_EXEC is not set + +# +# Finding Utilities +# +# CONFIG_FIND is not set +# CONFIG_FEATURE_FIND_PRINT0 is not set +# CONFIG_FEATURE_FIND_MTIME is not set +# CONFIG_FEATURE_FIND_MMIN is not set +# CONFIG_FEATURE_FIND_PERM is not set +# CONFIG_FEATURE_FIND_TYPE is not set +# CONFIG_FEATURE_FIND_EXECUTABLE is not set +# CONFIG_FEATURE_FIND_XDEV is not set +# CONFIG_FEATURE_FIND_MAXDEPTH is not set +# CONFIG_FEATURE_FIND_NEWER is not set +# CONFIG_FEATURE_FIND_INUM is not set +# CONFIG_FEATURE_FIND_EXEC is not set +# CONFIG_FEATURE_FIND_EXEC_PLUS is not set +# CONFIG_FEATURE_FIND_USER is not set +# CONFIG_FEATURE_FIND_GROUP is not set +# CONFIG_FEATURE_FIND_NOT is not set +# CONFIG_FEATURE_FIND_DEPTH is not set +# CONFIG_FEATURE_FIND_PAREN is not set +# CONFIG_FEATURE_FIND_SIZE is not set +# CONFIG_FEATURE_FIND_PRUNE is not set +# CONFIG_FEATURE_FIND_QUIT is not set +# CONFIG_FEATURE_FIND_DELETE is not set +# CONFIG_FEATURE_FIND_PATH is not set +# CONFIG_FEATURE_FIND_REGEX is not set +# CONFIG_FEATURE_FIND_CONTEXT is not set +# CONFIG_FEATURE_FIND_LINKS is not set +# CONFIG_GREP is not set +# CONFIG_EGREP is not set +# CONFIG_FGREP is not set +# CONFIG_FEATURE_GREP_CONTEXT is not set +# CONFIG_XARGS is not set +# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set +# CONFIG_FEATURE_XARGS_SUPPORT_QUOTES is not set +# CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT is not set +# CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM is not set +# CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR is not set +# CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL is not set +# CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE is not set + +# +# Init Utilities +# +# CONFIG_BOOTCHARTD is not set +# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set +# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set +# CONFIG_HALT is not set +# CONFIG_POWEROFF is not set +# CONFIG_REBOOT is not set +# CONFIG_FEATURE_WAIT_FOR_INIT is not set +# CONFIG_FEATURE_CALL_TELINIT is not set +CONFIG_TELINIT_PATH="" +# CONFIG_INIT is not set +# CONFIG_LINUXRC is not set +# CONFIG_FEATURE_USE_INITTAB is not set +# CONFIG_FEATURE_KILL_REMOVED is not set +CONFIG_FEATURE_KILL_DELAY=0 +# CONFIG_FEATURE_INIT_SCTTY is not set +# CONFIG_FEATURE_INIT_SYSLOG is not set +# CONFIG_FEATURE_INIT_QUIET is not set +# CONFIG_FEATURE_INIT_COREDUMPS is not set +CONFIG_INIT_TERMINAL_TYPE="" +# CONFIG_FEATURE_INIT_MODIFY_CMDLINE is not set + +# +# Login/Password Management Utilities +# +CONFIG_FEATURE_SHADOWPASSWDS=y +CONFIG_USE_BB_PWD_GRP=y +CONFIG_USE_BB_SHADOW=y +CONFIG_USE_BB_CRYPT=y +CONFIG_USE_BB_CRYPT_SHA=y +# CONFIG_ADD_SHELL is not set +# CONFIG_REMOVE_SHELL is not set +# CONFIG_ADDGROUP is not set +# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set +# CONFIG_ADDUSER is not set +# CONFIG_FEATURE_CHECK_NAMES is not set +CONFIG_LAST_ID=0 +CONFIG_FIRST_SYSTEM_ID=0 +CONFIG_LAST_SYSTEM_ID=0 +# CONFIG_CHPASSWD is not set +CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des" +# CONFIG_CRYPTPW is not set +# CONFIG_MKPASSWD is not set +# CONFIG_DELUSER is not set +# CONFIG_DELGROUP is not set +# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set +# CONFIG_GETTY is not set +CONFIG_LOGIN=y +# CONFIG_LOGIN_SESSION_AS_CHILD is not set +CONFIG_LOGIN_SCRIPTS=y +CONFIG_FEATURE_NOLOGIN=y +CONFIG_FEATURE_SECURETTY=y +CONFIG_PASSWD=y +# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set +CONFIG_SU=y +CONFIG_FEATURE_SU_SYSLOG=y +CONFIG_FEATURE_SU_CHECKS_SHELLS=y +# CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set +# CONFIG_SULOGIN is not set +CONFIG_VLOCK=y + +# +# Linux Ext2 FS Progs +# +# CONFIG_CHATTR is not set +# CONFIG_FSCK is not set +# CONFIG_LSATTR is not set +# CONFIG_TUNE2FS is not set + +# +# Linux Module Utilities +# +# CONFIG_MODPROBE_SMALL is not set +# CONFIG_DEPMOD is not set +# CONFIG_INSMOD is not set +# CONFIG_LSMOD is not set +# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set +# CONFIG_MODINFO is not set +# CONFIG_MODPROBE is not set +# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set +# CONFIG_RMMOD is not set + +# +# Options common to multiple modutils +# +# CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS is not set +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set +# CONFIG_FEATURE_2_4_MODULES is not set +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set +# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set +# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set +# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set +# CONFIG_FEATURE_MODUTILS_ALIAS is not set +# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set +CONFIG_DEFAULT_MODULES_DIR="" +CONFIG_DEFAULT_DEPMOD_FILE="" + +# +# Linux System Utilities +# +# CONFIG_ACPID is not set +# CONFIG_FEATURE_ACPID_COMPAT is not set +# CONFIG_BLKDISCARD is not set +# CONFIG_BLKID is not set +# CONFIG_FEATURE_BLKID_TYPE is not set +# CONFIG_BLOCKDEV is not set +# CONFIG_CAL is not set +# CONFIG_CHRT is not set +# CONFIG_DMESG is not set +# CONFIG_FEATURE_DMESG_PRETTY is not set +# CONFIG_EJECT is not set +# CONFIG_FEATURE_EJECT_SCSI is not set +# CONFIG_FALLOCATE is not set +# CONFIG_FATATTR is not set +# CONFIG_FBSET is not set +# CONFIG_FEATURE_FBSET_FANCY is not set +# CONFIG_FEATURE_FBSET_READMODE is not set +# CONFIG_FDFORMAT is not set +# CONFIG_FDISK is not set +# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set +# CONFIG_FEATURE_FDISK_WRITABLE is not set +# CONFIG_FEATURE_AIX_LABEL is not set +# CONFIG_FEATURE_SGI_LABEL is not set +# CONFIG_FEATURE_SUN_LABEL is not set +# CONFIG_FEATURE_OSF_LABEL is not set +# CONFIG_FEATURE_GPT_LABEL is not set +# CONFIG_FEATURE_FDISK_ADVANCED is not set +# CONFIG_FINDFS is not set +# CONFIG_FLOCK is not set +# CONFIG_FDFLUSH is not set +# CONFIG_FREERAMDISK is not set +# CONFIG_FSCK_MINIX is not set +# CONFIG_FSFREEZE is not set +# CONFIG_FSTRIM is not set +# CONFIG_GETOPT is not set +# CONFIG_FEATURE_GETOPT_LONG is not set +# CONFIG_HEXDUMP is not set +# CONFIG_FEATURE_HEXDUMP_REVERSE is not set +# CONFIG_HD is not set +# CONFIG_XXD is not set +# CONFIG_HWCLOCK is not set +# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set +# CONFIG_IONICE is not set +# CONFIG_IPCRM is not set +# CONFIG_IPCS is not set +# CONFIG_LAST is not set +# CONFIG_FEATURE_LAST_FANCY is not set +# CONFIG_LOSETUP is not set +# CONFIG_LSPCI is not set +# CONFIG_LSUSB is not set +# CONFIG_MDEV is not set +# CONFIG_FEATURE_MDEV_CONF is not set +# CONFIG_FEATURE_MDEV_RENAME is not set +# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set +# CONFIG_FEATURE_MDEV_EXEC is not set +# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set +# CONFIG_FEATURE_MDEV_DAEMON is not set +# CONFIG_MESG is not set +# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set +# CONFIG_MKE2FS is not set +# CONFIG_MKFS_EXT2 is not set +# CONFIG_MKFS_MINIX is not set +# CONFIG_FEATURE_MINIX2 is not set +# CONFIG_MKFS_REISER is not set +# CONFIG_MKDOSFS is not set +# CONFIG_MKFS_VFAT is not set +# CONFIG_MKSWAP is not set +# CONFIG_FEATURE_MKSWAP_UUID is not set +# CONFIG_MORE is not set +# CONFIG_MOUNT is not set +# CONFIG_FEATURE_MOUNT_FAKE is not set +# CONFIG_FEATURE_MOUNT_VERBOSE is not set +# CONFIG_FEATURE_MOUNT_HELPERS is not set +# CONFIG_FEATURE_MOUNT_LABEL is not set +# CONFIG_FEATURE_MOUNT_NFS is not set +# CONFIG_FEATURE_MOUNT_CIFS is not set +# CONFIG_FEATURE_MOUNT_FLAGS is not set +# CONFIG_FEATURE_MOUNT_FSTAB is not set +# CONFIG_FEATURE_MOUNT_OTHERTAB is not set +# CONFIG_MOUNTPOINT is not set +# CONFIG_NOLOGIN is not set +# CONFIG_NOLOGIN_DEPENDENCIES is not set +# CONFIG_NSENTER is not set +# CONFIG_PIVOT_ROOT is not set +# CONFIG_RDATE is not set +# CONFIG_RDEV is not set +# CONFIG_READPROFILE is not set +# CONFIG_RENICE is not set +# CONFIG_REV is not set +# CONFIG_RTCWAKE is not set +# CONFIG_SCRIPT is not set +# CONFIG_SCRIPTREPLAY is not set +# CONFIG_SETARCH is not set +# CONFIG_LINUX32 is not set +# CONFIG_LINUX64 is not set +# CONFIG_SETPRIV is not set +# CONFIG_FEATURE_SETPRIV_DUMP is not set +# CONFIG_FEATURE_SETPRIV_CAPABILITIES is not set +# CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES is not set +# CONFIG_SETSID is not set +# CONFIG_SWAPON is not set +# CONFIG_FEATURE_SWAPON_DISCARD is not set +# CONFIG_FEATURE_SWAPON_PRI is not set +# CONFIG_SWAPOFF is not set +# CONFIG_FEATURE_SWAPONOFF_LABEL is not set +# CONFIG_SWITCH_ROOT is not set +# CONFIG_TASKSET is not set +# CONFIG_FEATURE_TASKSET_FANCY is not set +# CONFIG_UEVENT is not set +# CONFIG_UMOUNT is not set +# CONFIG_FEATURE_UMOUNT_ALL is not set +# CONFIG_UNSHARE is not set +# CONFIG_WALL is not set +# CONFIG_FEATURE_MOUNT_LOOP is not set +# CONFIG_FEATURE_MOUNT_LOOP_CREATE is not set +# CONFIG_FEATURE_MTAB_SUPPORT is not set +# CONFIG_VOLUMEID is not set +# CONFIG_FEATURE_VOLUMEID_BCACHE is not set +# CONFIG_FEATURE_VOLUMEID_BTRFS is not set +# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set +# CONFIG_FEATURE_VOLUMEID_EXFAT is not set +# CONFIG_FEATURE_VOLUMEID_EXT is not set +# CONFIG_FEATURE_VOLUMEID_F2FS is not set +# CONFIG_FEATURE_VOLUMEID_FAT is not set +# CONFIG_FEATURE_VOLUMEID_HFS is not set +# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set +# CONFIG_FEATURE_VOLUMEID_JFS is not set +# CONFIG_FEATURE_VOLUMEID_LFS is not set +# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set +# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set +# CONFIG_FEATURE_VOLUMEID_LUKS is not set +# CONFIG_FEATURE_VOLUMEID_MINIX is not set +# CONFIG_FEATURE_VOLUMEID_NILFS is not set +# CONFIG_FEATURE_VOLUMEID_NTFS is not set +# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set +# CONFIG_FEATURE_VOLUMEID_REISERFS is not set +# CONFIG_FEATURE_VOLUMEID_ROMFS is not set +# CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set +# CONFIG_FEATURE_VOLUMEID_SYSV is not set +# CONFIG_FEATURE_VOLUMEID_UBIFS is not set +# CONFIG_FEATURE_VOLUMEID_UDF is not set +# CONFIG_FEATURE_VOLUMEID_XFS is not set + +# +# Miscellaneous Utilities +# +# CONFIG_ADJTIMEX is not set +# CONFIG_BBCONFIG is not set +# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set +# CONFIG_BC is not set +# CONFIG_DC is not set +# CONFIG_FEATURE_DC_BIG is not set +# CONFIG_FEATURE_DC_LIBM is not set +# CONFIG_FEATURE_BC_INTERACTIVE is not set +# CONFIG_FEATURE_BC_LONG_OPTIONS is not set +# CONFIG_BEEP is not set +CONFIG_FEATURE_BEEP_FREQ=0 +CONFIG_FEATURE_BEEP_LENGTH_MS=0 +# CONFIG_CHAT is not set +# CONFIG_FEATURE_CHAT_NOFAIL is not set +# CONFIG_FEATURE_CHAT_TTY_HIFI is not set +# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set +# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set +# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set +# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set +# CONFIG_FEATURE_CHAT_CLR_ABORT is not set +# CONFIG_CONSPY is not set +# CONFIG_CROND is not set +# CONFIG_FEATURE_CROND_D is not set +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +# CONFIG_FEATURE_CROND_SPECIAL_TIMES is not set +CONFIG_FEATURE_CROND_DIR="/var/spool/cron" +CONFIG_CRONTAB=y +# CONFIG_DEVFSD is not set +# CONFIG_DEVFSD_MODLOAD is not set +# CONFIG_DEVFSD_FG_NP is not set +# CONFIG_DEVFSD_VERBOSE is not set +# CONFIG_FEATURE_DEVFS is not set +# CONFIG_DEVMEM is not set +# CONFIG_FBSPLASH is not set +# CONFIG_FLASH_ERASEALL is not set +# CONFIG_FLASH_LOCK is not set +# CONFIG_FLASH_UNLOCK is not set +# CONFIG_FLASHCP is not set +# CONFIG_HDPARM is not set +# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set +# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set +# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set +# CONFIG_HEXEDIT is not set +# CONFIG_I2CGET is not set +# CONFIG_I2CSET is not set +# CONFIG_I2CDUMP is not set +# CONFIG_I2CDETECT is not set +# CONFIG_I2CTRANSFER is not set +# CONFIG_INOTIFYD is not set +# CONFIG_LESS is not set +CONFIG_FEATURE_LESS_MAXLINES=0 +# CONFIG_FEATURE_LESS_BRACKETS is not set +# CONFIG_FEATURE_LESS_FLAGS is not set +# CONFIG_FEATURE_LESS_TRUNCATE is not set +# CONFIG_FEATURE_LESS_MARKS is not set +# CONFIG_FEATURE_LESS_REGEXP is not set +# CONFIG_FEATURE_LESS_WINCH is not set +# CONFIG_FEATURE_LESS_ASK_TERMINAL is not set +# CONFIG_FEATURE_LESS_DASHCMD is not set +# CONFIG_FEATURE_LESS_LINENUMS is not set +# CONFIG_FEATURE_LESS_RAW is not set +# CONFIG_FEATURE_LESS_ENV is not set +# CONFIG_LSSCSI is not set +# CONFIG_MAKEDEVS is not set +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set +# CONFIG_FEATURE_MAKEDEVS_TABLE is not set +# CONFIG_MAN is not set +# CONFIG_MICROCOM is not set +# CONFIG_MT is not set +# CONFIG_NANDWRITE is not set +# CONFIG_NANDDUMP is not set +# CONFIG_PARTPROBE is not set +# CONFIG_RAIDAUTORUN is not set +# CONFIG_READAHEAD is not set +# CONFIG_RFKILL is not set +# CONFIG_RUNLEVEL is not set +# CONFIG_RX is not set +# CONFIG_SETFATTR is not set +# CONFIG_SETSERIAL is not set +# CONFIG_STRINGS is not set +# CONFIG_TIME is not set +# CONFIG_TS is not set +# CONFIG_TTYSIZE is not set +# CONFIG_UBIATTACH is not set +# CONFIG_UBIDETACH is not set +# CONFIG_UBIMKVOL is not set +# CONFIG_UBIRMVOL is not set +# CONFIG_UBIRSVOL is not set +# CONFIG_UBIUPDATEVOL is not set +# CONFIG_UBIRENAME is not set +# CONFIG_VOLNAME is not set +# CONFIG_WATCHDOG is not set + +# +# Networking Utilities +# +# CONFIG_FEATURE_IPV6 is not set +# CONFIG_FEATURE_UNIX_LOCAL is not set +# CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set +# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +# CONFIG_FEATURE_TLS_SHA1 is not set +# CONFIG_ARP is not set +# CONFIG_ARPING is not set +# CONFIG_BRCTL is not set +# CONFIG_FEATURE_BRCTL_FANCY is not set +# CONFIG_FEATURE_BRCTL_SHOW is not set +# CONFIG_DNSD is not set +# CONFIG_ETHER_WAKE is not set +# CONFIG_FTPD is not set +# CONFIG_FEATURE_FTPD_WRITE is not set +# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set +# CONFIG_FEATURE_FTPD_AUTHENTICATION is not set +# CONFIG_FTPGET is not set +# CONFIG_FTPPUT is not set +# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set +# CONFIG_HOSTNAME is not set +# CONFIG_DNSDOMAINNAME is not set +# CONFIG_HTTPD is not set +# CONFIG_FEATURE_HTTPD_RANGES is not set +# CONFIG_FEATURE_HTTPD_SETUID is not set +# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set +# CONFIG_FEATURE_HTTPD_CGI is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set +# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set +# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set +# CONFIG_FEATURE_HTTPD_PROXY is not set +# CONFIG_FEATURE_HTTPD_GZIP is not set +# CONFIG_IFCONFIG is not set +# CONFIG_FEATURE_IFCONFIG_STATUS is not set +# CONFIG_FEATURE_IFCONFIG_SLIP is not set +# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set +# CONFIG_FEATURE_IFCONFIG_HW is not set +# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set +# CONFIG_IFENSLAVE is not set +# CONFIG_IFPLUGD is not set +# CONFIG_IFUP is not set +# CONFIG_IFDOWN is not set +CONFIG_IFUPDOWN_IFSTATE_PATH="" +# CONFIG_FEATURE_IFUPDOWN_IP is not set +# CONFIG_FEATURE_IFUPDOWN_IPV4 is not set +# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set +# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set +# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set +# CONFIG_INETD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set +# CONFIG_FEATURE_INETD_RPC is not set +# CONFIG_IP is not set +# CONFIG_IPADDR is not set +# CONFIG_IPLINK is not set +# CONFIG_IPROUTE is not set +# CONFIG_IPTUNNEL is not set +# CONFIG_IPRULE is not set +# CONFIG_IPNEIGH is not set +# CONFIG_FEATURE_IP_ADDRESS is not set +# CONFIG_FEATURE_IP_LINK is not set +# CONFIG_FEATURE_IP_ROUTE is not set +CONFIG_FEATURE_IP_ROUTE_DIR="" +# CONFIG_FEATURE_IP_TUNNEL is not set +# CONFIG_FEATURE_IP_RULE is not set +# CONFIG_FEATURE_IP_NEIGH is not set +# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set +# CONFIG_IPCALC is not set +# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set +# CONFIG_FEATURE_IPCALC_FANCY is not set +# CONFIG_FAKEIDENTD is not set +# CONFIG_NAMEIF is not set +# CONFIG_FEATURE_NAMEIF_EXTENDED is not set +# CONFIG_NBDCLIENT is not set +# CONFIG_NC is not set +# CONFIG_NETCAT is not set +# CONFIG_NC_SERVER is not set +# CONFIG_NC_EXTRA is not set +# CONFIG_NC_110_COMPAT is not set +# CONFIG_NETSTAT is not set +# CONFIG_FEATURE_NETSTAT_WIDE is not set +# CONFIG_FEATURE_NETSTAT_PRG is not set +# CONFIG_NSLOOKUP is not set +# CONFIG_FEATURE_NSLOOKUP_BIG is not set +# CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS is not set +# CONFIG_NTPD is not set +# CONFIG_FEATURE_NTPD_SERVER is not set +# CONFIG_FEATURE_NTPD_CONF is not set +# CONFIG_FEATURE_NTP_AUTH is not set +CONFIG_PING=y +# CONFIG_PING6 is not set +CONFIG_FEATURE_FANCY_PING=y +# CONFIG_PSCAN is not set +# CONFIG_ROUTE is not set +# CONFIG_SLATTACH is not set +# CONFIG_SSL_CLIENT is not set +# CONFIG_TC is not set +# CONFIG_FEATURE_TC_INGRESS is not set +# CONFIG_TCPSVD is not set +# CONFIG_UDPSVD is not set +# CONFIG_TELNET is not set +# CONFIG_FEATURE_TELNET_TTYPE is not set +# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set +# CONFIG_FEATURE_TELNET_WIDTH is not set +# CONFIG_TELNETD is not set +# CONFIG_FEATURE_TELNETD_STANDALONE is not set +# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set +# CONFIG_TFTP is not set +# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set +# CONFIG_FEATURE_TFTP_HPA_COMPAT is not set +# CONFIG_TFTPD is not set +# CONFIG_FEATURE_TFTP_GET is not set +# CONFIG_FEATURE_TFTP_PUT is not set +# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set +# CONFIG_TFTP_DEBUG is not set +# CONFIG_TLS is not set +# CONFIG_TRACEROUTE is not set +# CONFIG_TRACEROUTE6 is not set +# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set +# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set +# CONFIG_TUNCTL is not set +# CONFIG_FEATURE_TUNCTL_UG is not set +# CONFIG_VCONFIG is not set +# CONFIG_WGET is not set +# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set +# CONFIG_FEATURE_WGET_STATUSBAR is not set +# CONFIG_FEATURE_WGET_AUTHENTICATION is not set +# CONFIG_FEATURE_WGET_TIMEOUT is not set +# CONFIG_FEATURE_WGET_HTTPS is not set +# CONFIG_FEATURE_WGET_OPENSSL is not set +# CONFIG_WHOIS is not set +# CONFIG_ZCIP is not set +# CONFIG_UDHCPD is not set +# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +CONFIG_DHCPD_LEASES_FILE="" +# CONFIG_DUMPLEASES is not set +# CONFIG_DHCPRELAY is not set +# CONFIG_UDHCPC is not set +# CONFIG_FEATURE_UDHCPC_ARPING is not set +# CONFIG_FEATURE_UDHCPC_SANITIZEOPT is not set +CONFIG_UDHCPC_DEFAULT_SCRIPT="" +# CONFIG_UDHCPC6 is not set +# CONFIG_FEATURE_UDHCPC6_RFC3646 is not set +# CONFIG_FEATURE_UDHCPC6_RFC4704 is not set +# CONFIG_FEATURE_UDHCPC6_RFC4833 is not set +# CONFIG_FEATURE_UDHCPC6_RFC5970 is not set +# CONFIG_FEATURE_UDHCP_PORT is not set +CONFIG_UDHCP_DEBUG=0 +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0 +# CONFIG_FEATURE_UDHCP_RFC3397 is not set +# CONFIG_FEATURE_UDHCP_8021Q is not set +CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" + +# +# Print Utilities +# +# CONFIG_LPD is not set +# CONFIG_LPR is not set +# CONFIG_LPQ is not set + +# +# Mail Utilities +# +# CONFIG_MAKEMIME is not set +# CONFIG_POPMAILDIR is not set +# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set +# CONFIG_REFORMIME is not set +# CONFIG_FEATURE_REFORMIME_COMPAT is not set +# CONFIG_SENDMAIL is not set +CONFIG_FEATURE_MIME_CHARSET="" + +# +# Process Utilities +# +# CONFIG_FREE is not set +# CONFIG_FUSER is not set +# CONFIG_IOSTAT is not set +# CONFIG_KILL is not set +# CONFIG_KILLALL is not set +# CONFIG_KILLALL5 is not set +# CONFIG_LSOF is not set +# CONFIG_MPSTAT is not set +# CONFIG_NMETER is not set +# CONFIG_PGREP is not set +# CONFIG_PKILL is not set +# CONFIG_PIDOF is not set +# CONFIG_FEATURE_PIDOF_SINGLE is not set +# CONFIG_FEATURE_PIDOF_OMIT is not set +# CONFIG_PMAP is not set +# CONFIG_POWERTOP is not set +# CONFIG_FEATURE_POWERTOP_INTERACTIVE is not set +# CONFIG_PS is not set +# CONFIG_FEATURE_PS_WIDE is not set +# CONFIG_FEATURE_PS_LONG is not set +# CONFIG_FEATURE_PS_TIME is not set +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set +# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set +# CONFIG_PSTREE is not set +# CONFIG_PWDX is not set +# CONFIG_SMEMCAP is not set +# CONFIG_BB_SYSCTL is not set +# CONFIG_TOP is not set +# CONFIG_FEATURE_TOP_INTERACTIVE is not set +# CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE is not set +# CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS is not set +# CONFIG_FEATURE_TOP_SMP_CPU is not set +# CONFIG_FEATURE_TOP_DECIMALS is not set +# CONFIG_FEATURE_TOP_SMP_PROCESS is not set +# CONFIG_FEATURE_TOPMEM is not set +# CONFIG_UPTIME is not set +# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set +# CONFIG_WATCH is not set +# CONFIG_FEATURE_SHOW_THREADS is not set + +# +# Runit Utilities +# +# CONFIG_CHPST is not set +# CONFIG_SETUIDGID is not set +# CONFIG_ENVUIDGID is not set +# CONFIG_ENVDIR is not set +# CONFIG_SOFTLIMIT is not set +# CONFIG_RUNSV is not set +# CONFIG_RUNSVDIR is not set +# CONFIG_FEATURE_RUNSVDIR_LOG is not set +# CONFIG_SV is not set +CONFIG_SV_DEFAULT_SERVICE_DIR="" +# CONFIG_SVC is not set +# CONFIG_SVOK is not set +# CONFIG_SVLOGD is not set +# CONFIG_CHCON is not set +# CONFIG_GETENFORCE is not set +# CONFIG_GETSEBOOL is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_MATCHPATHCON is not set +# CONFIG_RUNCON is not set +# CONFIG_SELINUXENABLED is not set +# CONFIG_SESTATUS is not set +# CONFIG_SETENFORCE is not set +# CONFIG_SETFILES is not set +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_RESTORECON is not set +# CONFIG_SETSEBOOL is not set + +# +# Shells +# +# CONFIG_SH_IS_ASH is not set +# CONFIG_SH_IS_HUSH is not set +CONFIG_SH_IS_NONE=y +# CONFIG_BASH_IS_ASH is not set +# CONFIG_BASH_IS_HUSH is not set +CONFIG_BASH_IS_NONE=y +# CONFIG_ASH is not set +# CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set +# CONFIG_ASH_INTERNAL_GLOB is not set +# CONFIG_ASH_BASH_COMPAT is not set +# CONFIG_ASH_BASH_SOURCE_CURDIR is not set +# CONFIG_ASH_BASH_NOT_FOUND_HOOK is not set +# CONFIG_ASH_JOB_CONTROL is not set +# CONFIG_ASH_ALIAS is not set +# CONFIG_ASH_RANDOM_SUPPORT is not set +# CONFIG_ASH_EXPAND_PRMT is not set +# CONFIG_ASH_IDLE_TIMEOUT is not set +# CONFIG_ASH_MAIL is not set +# CONFIG_ASH_ECHO is not set +# CONFIG_ASH_PRINTF is not set +# CONFIG_ASH_TEST is not set +# CONFIG_ASH_HELP is not set +# CONFIG_ASH_GETOPTS is not set +# CONFIG_ASH_CMDCMD is not set +# CONFIG_CTTYHACK is not set +# CONFIG_HUSH is not set +# CONFIG_HUSH_BASH_COMPAT is not set +# CONFIG_HUSH_BRACE_EXPANSION is not set +# CONFIG_HUSH_LINENO_VAR is not set +# CONFIG_HUSH_BASH_SOURCE_CURDIR is not set +# CONFIG_HUSH_INTERACTIVE is not set +# CONFIG_HUSH_SAVEHISTORY is not set +# CONFIG_HUSH_JOB is not set +# CONFIG_HUSH_TICK is not set +# CONFIG_HUSH_IF is not set +# CONFIG_HUSH_LOOPS is not set +# CONFIG_HUSH_CASE is not set +# CONFIG_HUSH_FUNCTIONS is not set +# CONFIG_HUSH_LOCAL is not set +# CONFIG_HUSH_RANDOM_SUPPORT is not set +# CONFIG_HUSH_MODE_X is not set +# CONFIG_HUSH_ECHO is not set +# CONFIG_HUSH_PRINTF is not set +# CONFIG_HUSH_TEST is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_EXPORT is not set +# CONFIG_HUSH_EXPORT_N is not set +# CONFIG_HUSH_READONLY is not set +# CONFIG_HUSH_KILL is not set +# CONFIG_HUSH_WAIT is not set +# CONFIG_HUSH_COMMAND is not set +# CONFIG_HUSH_TRAP is not set +# CONFIG_HUSH_TYPE is not set +# CONFIG_HUSH_TIMES is not set +# CONFIG_HUSH_READ is not set +# CONFIG_HUSH_SET is not set +# CONFIG_HUSH_UNSET is not set +# CONFIG_HUSH_ULIMIT is not set +# CONFIG_HUSH_UMASK is not set +# CONFIG_HUSH_GETOPTS is not set +# CONFIG_HUSH_MEMLEAK is not set + +# +# Options common to all shells +# +# CONFIG_FEATURE_SH_MATH is not set +# CONFIG_FEATURE_SH_MATH_64 is not set +# CONFIG_FEATURE_SH_MATH_BASE is not set +# CONFIG_FEATURE_SH_EXTRA_QUIET is not set +# CONFIG_FEATURE_SH_STANDALONE is not set +# CONFIG_FEATURE_SH_NOFORK is not set +# CONFIG_FEATURE_SH_READ_FRAC is not set +# CONFIG_FEATURE_SH_HISTFILESIZE is not set +# CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS is not set + +# +# System Logging Utilities +# +# CONFIG_KLOGD is not set +# CONFIG_FEATURE_KLOGD_KLOGCTL is not set +# CONFIG_LOGGER is not set +# CONFIG_LOGREAD is not set +# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set +# CONFIG_SYSLOGD is not set +# CONFIG_FEATURE_ROTATE_LOGFILE is not set +# CONFIG_FEATURE_REMOTE_LOG is not set +# CONFIG_FEATURE_SYSLOGD_DUP is not set +# CONFIG_FEATURE_SYSLOGD_CFG is not set +CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0 +# CONFIG_FEATURE_IPC_SYSLOG is not set +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0 +# CONFIG_FEATURE_KMSG_SYSLOG is not set diff --git a/core/busybox/files/acpid.run b/core/busybox/files/acpid.run new file mode 100644 index 00000000..2f1ecdb6 --- /dev/null +++ b/core/busybox/files/acpid.run @@ -0,0 +1,2 @@ +#!/bin/sh +exec acpid -fl diff --git a/core/busybox/sources b/core/busybox/sources new file mode 100644 index 00000000..c012a491 --- /dev/null +++ b/core/busybox/sources @@ -0,0 +1,6 @@ +https://busybox.net/downloads/busybox-1.31.1.tar.bz2 +files/.config +files/.config-suid +files/acpid.run +files/crond.run +files/syslogd.run diff --git a/core/busybox/version b/core/busybox/version new file mode 100644 index 00000000..41e47002 --- /dev/null +++ b/core/busybox/version @@ -0,0 +1 @@ +1.31.1 0 diff --git a/core/bzip2/build b/core/bzip2/build new file mode 100755 index 00000000..3f08f33b --- /dev/null +++ b/core/bzip2/build @@ -0,0 +1,20 @@ +#!/bin/sh -e + +make CC="${CC:-gcc} $CFLAGS -fPIC $LDFLAGS" -f Makefile-libbz2_so +make CC="${CC:-gcc} $CFLAGS -fPIC $LDFLAGS" bzip2recover libbz2.a + +for bin in bzip2-shared bzdiff bzgrep bzip2recover bzmore; do + install -Dm755 "$bin" "$1/usr/bin/${bin%%-shared}" +done + +install -Dm755 libbz2.so.1.0.8 "$1/usr/lib/libbz2.so.1.0.8" +install -Dm644 libbz2.a "$1/usr/lib/libbz2.a" +install -Dm644 bzip2.1 "$1/usr/share/man/man1/bzip2.1" +install -Dm644 bzlib.h "$1/usr/include/bzlib.h" + +for lib in libbz2.so libbz2.so.1 libbz2.so.1.0; do + ln -sf libbz2.so.1.0.8 "$1/usr/lib/$lib" +done + +ln -sf bzip2 "$1/usr/bin/bunzip2" +ln -sf bzip2 "$1/usr/bin/bzcat" diff --git a/core/bzip2/checksums b/core/bzip2/checksums new file mode 100644 index 00000000..b50d3466 --- /dev/null +++ b/core/bzip2/checksums @@ -0,0 +1 @@ +ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269 bzip2-1.0.8.tar.gz diff --git a/core/bzip2/sources b/core/bzip2/sources new file mode 100644 index 00000000..a04bc1bb --- /dev/null +++ b/core/bzip2/sources @@ -0,0 +1 @@ +https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz diff --git a/core/bzip2/version b/core/bzip2/version new file mode 100644 index 00000000..0bc3d1eb --- /dev/null +++ b/core/bzip2/version @@ -0,0 +1 @@ +1.0.8 1 diff --git a/core/carbs-init/build b/core/carbs-init/build new file mode 100755 index 00000000..97c33153 --- /dev/null +++ b/core/carbs-init/build @@ -0,0 +1,6 @@ +#!/bin/sh -e + +mkdir -p "$1/usr" + +cp -R etc "$1" +cp -R lib "$1/usr" diff --git a/core/carbs-init/checksums b/core/carbs-init/checksums new file mode 100644 index 00000000..13affdfe --- /dev/null +++ b/core/carbs-init/checksums @@ -0,0 +1 @@ +5fcfc48b1f8493c0db36a6953e326c1a init-0.1.tar.gz diff --git a/core/carbs-init/post-install b/core/carbs-init/post-install new file mode 100755 index 00000000..78b3038c --- /dev/null +++ b/core/carbs-init/post-install @@ -0,0 +1,13 @@ +#!/bin/sh + +cat <<EOF + +NOTE: 'udevd' is now killed once the boot is + complete as the daemon is optional. + +NOTE: If you require the daemon, it can be + enabled as a runit service + +-> ln -s /etc/sv/udevd/ /var/servie/ + +EOF diff --git a/core/carbs-init/sources b/core/carbs-init/sources new file mode 100644 index 00000000..869db535 --- /dev/null +++ b/core/carbs-init/sources @@ -0,0 +1 @@ +https://carbslinux.org/git/archives/init/init-0.1.tar.gz diff --git a/core/carbs-init/version b/core/carbs-init/version new file mode 100644 index 00000000..084a74c2 --- /dev/null +++ b/core/carbs-init/version @@ -0,0 +1 @@ +0.1 1 diff --git a/core/curl/build b/core/curl/build new file mode 100755 index 00000000..ac041c31 --- /dev/null +++ b/core/curl/build @@ -0,0 +1,18 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --enable-ipv6 \ + --enable-unix-sockets \ + --enable-hidden-symbols \ + --without-libidn \ + --without-libidn2 \ + --disable-manual \ + --disable-ldap \ + --disable-ares \ + --without-libidn \ + --without-librtmp \ + --with-pic + +make +make DESTDIR="$1" install diff --git a/core/curl/checksums b/core/curl/checksums new file mode 100644 index 00000000..7ccaa5e1 --- /dev/null +++ b/core/curl/checksums @@ -0,0 +1 @@ +f5d2e7320379338c3952dcc7566a140abb49edb575f9f99272455785c40e536c curl-7.67.0.tar.xz diff --git a/core/curl/depends b/core/curl/depends new file mode 100644 index 00000000..01e22f1c --- /dev/null +++ b/core/curl/depends @@ -0,0 +1,3 @@ +libressl +perl make +zlib diff --git a/core/curl/sources b/core/curl/sources new file mode 100644 index 00000000..001d55e6 --- /dev/null +++ b/core/curl/sources @@ -0,0 +1 @@ +https://curl.haxx.se/download/curl-7.67.0.tar.xz diff --git a/core/curl/version b/core/curl/version new file mode 100644 index 00000000..68297a3f --- /dev/null +++ b/core/curl/version @@ -0,0 +1 @@ +7.67.0 1 diff --git a/core/dhcpcd/build b/core/dhcpcd/build new file mode 100755 index 00000000..5e4235c7 --- /dev/null +++ b/core/dhcpcd/build @@ -0,0 +1,14 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --sysconfdir=/etc \ + --rundir=/run + +make +make DESTDIR="$1" install + +# Install runit service. +install -Dm 755 dhcpcd.run "$1/etc/sv/dhcpcd/run" +ln -s /run/runit/supervise.dhcpcd "$1/etc/sv/dhcpcd/supervise" diff --git a/core/dhcpcd/checksums b/core/dhcpcd/checksums new file mode 100644 index 00000000..c035d50a --- /dev/null +++ b/core/dhcpcd/checksums @@ -0,0 +1,2 @@ +808261106c47c692c51e10bef83d364a693ad9216b1be7c4735240b24c2d6715 dhcpcd-8.1.2.tar.gz +533714c2f3edcd70e47822cb880d8e8ffdba673b10452ea808037ec2714a375c dhcpcd.run diff --git a/core/dhcpcd/files/dhcpcd.run b/core/dhcpcd/files/dhcpcd.run new file mode 100644 index 00000000..0172d7f8 --- /dev/null +++ b/core/dhcpcd/files/dhcpcd.run @@ -0,0 +1,2 @@ +#!/bin/sh +exec dhcpcd -BM 1>&2 diff --git a/core/dhcpcd/sources b/core/dhcpcd/sources new file mode 100644 index 00000000..ab8475e5 --- /dev/null +++ b/core/dhcpcd/sources @@ -0,0 +1,2 @@ +https://github.com/rsmarples/dhcpcd/archive/dhcpcd-8.1.2.tar.gz +files/dhcpcd.run diff --git a/core/dhcpcd/version b/core/dhcpcd/version new file mode 100644 index 00000000..1679acdb --- /dev/null +++ b/core/dhcpcd/version @@ -0,0 +1 @@ +8.1.2 1 diff --git a/core/e2fsprogs/build b/core/e2fsprogs/build new file mode 100755 index 00000000..a01968a7 --- /dev/null +++ b/core/e2fsprogs/build @@ -0,0 +1,19 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --sysconfdir=/etc \ + --enable-symlink-install \ + --disable-uuidd \ + --disable-libuuid \ + --disable-libblkid \ + --disable-elf-shlibs \ + --disable-fsck + +# MKDIR_P fixes an install issue on musl/busybox. +make +make MKDIR_P="install -d" DESTDIR="$1" install install-libs + +# Make static libraries writable. +chmod -v u+w "$1/usr/lib/"*.a diff --git a/core/e2fsprogs/checksums b/core/e2fsprogs/checksums new file mode 100644 index 00000000..c1a64445 --- /dev/null +++ b/core/e2fsprogs/checksums @@ -0,0 +1 @@ +65faf6b590ca1da97440d6446bd11de9e0914b42553740ba5d9d2a796fa0dc02 e2fsprogs-1.45.4.tar.xz diff --git a/core/e2fsprogs/depends b/core/e2fsprogs/depends new file mode 100644 index 00000000..55c8f231 --- /dev/null +++ b/core/e2fsprogs/depends @@ -0,0 +1,3 @@ +linux-headers make +pkgconf make +util-linux diff --git a/core/e2fsprogs/sources b/core/e2fsprogs/sources new file mode 100644 index 00000000..cc57e983 --- /dev/null +++ b/core/e2fsprogs/sources @@ -0,0 +1 @@ +https://mirrors.edge.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.45.4/e2fsprogs-1.45.4.tar.xz diff --git a/core/e2fsprogs/version b/core/e2fsprogs/version new file mode 100644 index 00000000..8fdade9d --- /dev/null +++ b/core/e2fsprogs/version @@ -0,0 +1 @@ +1.45.4 1 diff --git a/core/eudev/build b/core/eudev/build new file mode 100755 index 00000000..07b1bbd1 --- /dev/null +++ b/core/eudev/build @@ -0,0 +1,14 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --enable-hwdb \ + --disable-introspection + +make +make DESTDIR="$1" install + +# Install runit service. +install -Dm755 udevd.run "$1/etc/sv/udevd/run" +ln -s /run/runit/supervise.udevd "$1/etc/sv/udevd/supervise" diff --git a/core/eudev/checksums b/core/eudev/checksums new file mode 100644 index 00000000..04f21a64 --- /dev/null +++ b/core/eudev/checksums @@ -0,0 +1,2 @@ +89618619084a19e1451d373c43f141b469c9fd09767973d73dd268b92074d4fc eudev-3.2.9.tar.gz +5b965dc067c5f411a3342f867e11ccfcf689cc1bf5957b0da4521c528be4ce5e udevd.run diff --git a/core/eudev/depends b/core/eudev/depends new file mode 100644 index 00000000..b342f9ac --- /dev/null +++ b/core/eudev/depends @@ -0,0 +1,2 @@ +gperf make +util-linux diff --git a/core/eudev/files/udevd.run b/core/eudev/files/udevd.run new file mode 100644 index 00000000..5e21489c --- /dev/null +++ b/core/eudev/files/udevd.run @@ -0,0 +1,2 @@ +#!/bin/sh +exec udevd diff --git a/core/eudev/sources b/core/eudev/sources new file mode 100644 index 00000000..96d65f64 --- /dev/null +++ b/core/eudev/sources @@ -0,0 +1,2 @@ +https://dev.gentoo.org/~blueness/eudev/eudev-3.2.9.tar.gz +files/udevd.run diff --git a/core/eudev/version b/core/eudev/version new file mode 100644 index 00000000..18935346 --- /dev/null +++ b/core/eudev/version @@ -0,0 +1 @@ +3.2.9 2 diff --git a/core/gcc/build b/core/gcc/build new file mode 100755 index 00000000..ef0e87db --- /dev/null +++ b/core/gcc/build @@ -0,0 +1,52 @@ +#!/bin/sh -e + +# Make sure gmp is built with generic options. +cp -v gcc/gmp/configfsf.guess gcc/gmp/config.guess +cp -v gcc/gmp/configfsf.sub gcc/gmp/config.sub + +# Use lib not lib64 by default. +sed -i '/m64=/s/lib64/lib/' gcc/gcc/config/i386/t-linux64 +sed -i 's/lib64/lib/' gcc/gcc/config/i386/linux64.h + +# Build must happen outside of gcc source. +mkdir -p gcc-build +cd gcc-build + +export libat_cv_have_ifunc=no + +../gcc/configure \ + --prefix=/usr \ + --disable-multilib \ + --disable-symvers \ + --disable-libmpx \ + --disable-libmudflap \ + --disable-libsanitizer \ + --disable-werror \ + --disable-fixed-point \ + --disable-libstdcxx-pch \ + --enable-checking=release \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --with-system-zlib \ + --enable-__cxa_atexit \ + --enable-default-pie \ + --enable-default-ssp \ + --enable-shared \ + --enable-threads \ + --enable-tls \ + --enable-languages=c,c++ \ + --build=x86_64-pc-linux-musl + +make +make DESTDIR="$1" install + +# Save 35MB. +find "$1" -name libgtkpeer.a -delete +find "$1" -name libgjsmalsa.a -delete +find "$1" -name libgij.a -delete + +# Some legacy programs will expect cc +ln -s gcc "$1/usr/bin/cc" + +# POSIX compliance. +install -Dm755 ../c99 "$1/usr/bin/c99" diff --git a/core/gcc/checksums b/core/gcc/checksums new file mode 100644 index 00000000..30470230 --- /dev/null +++ b/core/gcc/checksums @@ -0,0 +1,5 @@ +ea6ef08f121239da5695f76c9b33637a118dcf63e24164422231917fa61fb206 gcc-9.2.0.tar.xz +87b565e89a9a684fe4ebeeddb8399dce2599f9c9049854ca8c0dfbdea0e21912 gmp-6.1.2.tar.xz +1d3be708604eae0e42d578ba93b390c2a145f17743a744d8f3f8c2ad5855a38a mpfr-4.0.2.tar.xz +6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e mpc-1.1.0.tar.gz +765614b3396d70bca3fa0ae4a813632486c6dca320e2bd13c8c39dca52be4a4c c99 diff --git a/core/gcc/depends b/core/gcc/depends new file mode 100644 index 00000000..11c84767 --- /dev/null +++ b/core/gcc/depends @@ -0,0 +1,5 @@ +binutils +bison +flex +linux-headers +zlib diff --git a/core/gcc/files/c99 b/core/gcc/files/c99 new file mode 100644 index 00000000..692f0924 --- /dev/null +++ b/core/gcc/files/c99 @@ -0,0 +1,2 @@ +#!/bin/sh +exec cc -std=c99 "$@" diff --git a/core/gcc/sources b/core/gcc/sources new file mode 100644 index 00000000..a76e4eeb --- /dev/null +++ b/core/gcc/sources @@ -0,0 +1,5 @@ +https://gcc.gnu.org/pub/gcc/releases/gcc-9.2.0/gcc-9.2.0.tar.xz gcc +https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz gcc/gmp +https://www.mpfr.org/mpfr-current/mpfr-4.0.2.tar.xz gcc/mpfr +https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz gcc/mpc +files/c99 diff --git a/core/gcc/version b/core/gcc/version new file mode 100644 index 00000000..b821d350 --- /dev/null +++ b/core/gcc/version @@ -0,0 +1 @@ +9.2.0 1 diff --git a/core/git/build b/core/git/build new file mode 100755 index 00000000..c129008c --- /dev/null +++ b/core/git/build @@ -0,0 +1,22 @@ +#!/bin/sh -e + +cat > config.mak <<EOF +NO_GETTEXT=YesPlease +NO_SVN_TESTS=YesPlease +NO_TCLTK=YesPlease +NO_EXPAT=YesPlease +NO_NSEC=YesPlease +NO_PYTHON=YesPlease +NO_PERL=YesPlease +NO_SYS_POLL_H=1 +NO_CROSS_DIRECTORY_HARDLINKS=1 +NO_INSTALL_HARDLINKS=1 +EOF + +./configure \ + --prefix=/usr \ + ac_cv_snprintf_returns_bogus=no \ + ac_cv_fread_reads_directories=yes + +make +make DESTDIR="$1" install diff --git a/core/git/checksums b/core/git/checksums new file mode 100644 index 00000000..3277c107 --- /dev/null +++ b/core/git/checksums @@ -0,0 +1 @@ +9f71d61973626d8b28c4cdf8e2484b4bf13870ed643fed982d68b2cfd754371b git-2.24.0.tar.xz diff --git a/core/git/depends b/core/git/depends new file mode 100644 index 00000000..ae42686b --- /dev/null +++ b/core/git/depends @@ -0,0 +1,3 @@ +curl +libressl +zlib diff --git a/core/git/sources b/core/git/sources new file mode 100644 index 00000000..c9793b8e --- /dev/null +++ b/core/git/sources @@ -0,0 +1 @@ +https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.24.0.tar.xz diff --git a/core/git/version b/core/git/version new file mode 100644 index 00000000..c95bbf0c --- /dev/null +++ b/core/git/version @@ -0,0 +1 @@ +2.24.0 1 diff --git a/core/grub/build b/core/grub/build new file mode 100755 index 00000000..d0cee821 --- /dev/null +++ b/core/grub/build @@ -0,0 +1,38 @@ +#!/bin/sh -e + +# Grub is built in a function so the script argument needs to be stored. +pkg_dir=$1 + +build_grub() ( + cp -a grub "grub-${1##*=}" + cd "grub-${1##*=}" + + ./configure \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --sysconfdir=/etc \ + --disable-werror \ + --disable-grub-mkfont \ + --disable-grub-mount \ + "$@" + + make + make DESTDIR="$pkg_dir" install +) + +build_grub --with-platform=pc +build_grub --with-platform=efi --disable-efiemu + +# Install /etc/default/grub (used by grub-mkconfig). +install -Dm0644 grub.default "$1/etc/default/grub" + +# Remove gdb debugging files. +( + cd "$pkg_dir/usr/lib" + + rm -f grub/*/*.module + rm -f grub/*/*.image + rm -f grub/*/kernel.exec + rm -f grub/*/gdb_grub + rm -f grub/*/gmodule.pl +) diff --git a/core/grub/checksums b/core/grub/checksums new file mode 100644 index 00000000..11c607c3 --- /dev/null +++ b/core/grub/checksums @@ -0,0 +1,2 @@ +e5292496995ad42dabe843a0192cf2a2c502e7ffcc7479398232b10a472df77d grub-2.04.tar.xz +93cde7ed22280bf1bf205d1e2c9700c64d8d32bd759569f6e00913ec001389c5 grub.default diff --git a/core/grub/depends b/core/grub/depends new file mode 100644 index 00000000..58223007 --- /dev/null +++ b/core/grub/depends @@ -0,0 +1,6 @@ +binutils make +bison make +flex make +linux-headers make +python make +xz diff --git a/core/grub/files/grub.default b/core/grub/files/grub.default new file mode 100644 index 00000000..762f3384 --- /dev/null +++ b/core/grub/files/grub.default @@ -0,0 +1,53 @@ +# GRUB boot loader configuration + +GRUB_DEFAULT=0 +GRUB_TIMEOUT=5 +GRUB_DISTRIBUTOR="KISS" +GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet" + +# Preload both GPT and MBR modules so that they are not missed +GRUB_PRELOAD_MODULES="part_gpt part_msdos" + +# Uncomment to enable booting from LUKS encrypted devices +#GRUB_ENABLE_CRYPTODISK=y + +# Set to 'countdown' or 'hidden' to change timeout behavior, +# press ESC key to display menu. +#GRUB_TIMEOUT_STYLE=menu + +# Uncomment to use basic console +#GRUB_TERMINAL_INPUT=console + +# Uncomment to disable graphical terminal +#GRUB_TERMINAL_OUTPUT=console + +# The resolution used on graphical terminal +# note that you can use only modes which your graphic card supports via VBE +# you can see them in real GRUB with the command `vbeinfo' +#GRUB_GFXMODE=auto + +# Uncomment to allow the kernel use the same resolution used by grub +#GRUB_GFXPAYLOAD_LINUX=keep + +# Uncomment if you want GRUB to pass to the Linux kernel the old parameter +# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx" +#GRUB_DISABLE_LINUX_UUID=true + +# Uncomment to disable generation of recovery mode menu entries +#GRUB_DISABLE_RECOVERY=true + +# Uncomment and set to the desired menu colors. Used by normal and wallpaper +# modes only. Entries specified as foreground/background. +#GRUB_COLOR_NORMAL="light-blue/black" +#GRUB_COLOR_HIGHLIGHT="light-cyan/blue" + +# Uncomment one of them for the gfx desired, a image background or a gfxtheme +#GRUB_BACKGROUND="/path/to/wallpaper" +#GRUB_THEME="/path/to/gfxtheme" + +# Uncomment to get a beep at GRUB start +#GRUB_INIT_TUNE="480 440 1" + +# Uncomment to make GRUB remember the last selection. This requires to +# set 'GRUB_DEFAULT=saved' above. +#GRUB_SAVEDEFAULT="true" diff --git a/core/grub/sources b/core/grub/sources new file mode 100644 index 00000000..3c08ed68 --- /dev/null +++ b/core/grub/sources @@ -0,0 +1,2 @@ +https://ftp.gnu.org/gnu/grub/grub-2.04.tar.xz grub/ +files/grub.default diff --git a/core/grub/version b/core/grub/version new file mode 100644 index 00000000..b24222c0 --- /dev/null +++ b/core/grub/version @@ -0,0 +1 @@ +2.04 3 diff --git a/core/gzip/build b/core/gzip/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/core/gzip/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/core/gzip/checksums b/core/gzip/checksums new file mode 100644 index 00000000..54032f3b --- /dev/null +++ b/core/gzip/checksums @@ -0,0 +1 @@ +8425ccac99872d544d4310305f915f5ea81e04d0f437ef1a230dc9d1c819d7c0 gzip-1.10.tar.xz diff --git a/core/gzip/sources b/core/gzip/sources new file mode 100644 index 00000000..6bff4586 --- /dev/null +++ b/core/gzip/sources @@ -0,0 +1 @@ +https://ftp.gnu.org/pub/gnu/gzip/gzip-1.10.tar.xz diff --git a/core/gzip/version b/core/gzip/version new file mode 100644 index 00000000..82096ecf --- /dev/null +++ b/core/gzip/version @@ -0,0 +1 @@ +1.10 1 diff --git a/core/kiss-utils/build b/core/kiss-utils/build new file mode 100755 index 00000000..d59d22df --- /dev/null +++ b/core/kiss-utils/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +cd contrib + +for bin in *; do + install -D "$bin" "$1/usr/bin/$bin" +done diff --git a/core/kiss-utils/checksums b/core/kiss-utils/checksums new file mode 100644 index 00000000..4cfa711c --- /dev/null +++ b/core/kiss-utils/checksums @@ -0,0 +1 @@ +54d23b2b53df104ca776a3cfbcff354ce5912dfd87104bfded6b9b744d23b154 49cfb7cac2c2f6875b9cbe5d31c3c8deffbad0a5.tar.gz diff --git a/core/kiss-utils/sources b/core/kiss-utils/sources new file mode 100644 index 00000000..d19db4e8 --- /dev/null +++ b/core/kiss-utils/sources @@ -0,0 +1 @@ +https://github.com/kisslinux/kiss/archive/49cfb7cac2c2f6875b9cbe5d31c3c8deffbad0a5.tar.gz diff --git a/core/kiss-utils/version b/core/kiss-utils/version new file mode 100644 index 00000000..19de110f --- /dev/null +++ b/core/kiss-utils/version @@ -0,0 +1 @@ +0.3.0 1 diff --git a/core/kiss/build b/core/kiss/build new file mode 100755 index 00000000..2e6c7c3f --- /dev/null +++ b/core/kiss/build @@ -0,0 +1,5 @@ +#!/bin/sh -e + +install -D kiss "$1/usr/bin/kiss" +install -D kiss_path.sh "$1/etc/profile.d/kiss_path.sh" +install -D kiss.1 "$1/usr/share/man/man1/kiss.1" diff --git a/core/kiss/checksums b/core/kiss/checksums new file mode 100644 index 00000000..833ab9db --- /dev/null +++ b/core/kiss/checksums @@ -0,0 +1,2 @@ +37858e66a9cd4ae1dc33a7e5acc631fa07b97751a82d299d9f6cc038a9c66871 0.53.6.tar.gz +d56d159fd9f0c39a2692b4b00b1543b2eb476a0659aa6899efa0ff460863dc70 kiss_path.sh diff --git a/core/kiss/depends b/core/kiss/depends new file mode 100644 index 00000000..0160809b --- /dev/null +++ b/core/kiss/depends @@ -0,0 +1,2 @@ +git +rsync diff --git a/core/kiss/files/kiss_path.sh b/core/kiss/files/kiss_path.sh new file mode 100644 index 00000000..95cf8fac --- /dev/null +++ b/core/kiss/files/kiss_path.sh @@ -0,0 +1 @@ +export KISS_PATH=/var/db/kiss/repo/core:/var/db/kiss/repo/extra:/var/db/kiss/repo/xorg diff --git a/core/kiss/sources b/core/kiss/sources new file mode 100644 index 00000000..6dae71e8 --- /dev/null +++ b/core/kiss/sources @@ -0,0 +1,2 @@ +https://github.com/kisslinux/kiss/archive/0.53.6.tar.gz +files/kiss_path.sh diff --git a/core/kiss/version b/core/kiss/version new file mode 100644 index 00000000..cf2870c5 --- /dev/null +++ b/core/kiss/version @@ -0,0 +1 @@ +0.53.6 1 diff --git a/core/libelf/build b/core/libelf/build new file mode 100755 index 00000000..a7a7f497 --- /dev/null +++ b/core/libelf/build @@ -0,0 +1,10 @@ +#!/bin/sh -e + +sed -i 's/-I/-isystem /g' libelf.pc.in + +./configure \ + --prefix=/usr \ + --enable-nls=auto + +make +make prefix="$1/usr" install diff --git a/core/libelf/checksums b/core/libelf/checksums new file mode 100644 index 00000000..46a6d9a8 --- /dev/null +++ b/core/libelf/checksums @@ -0,0 +1 @@ +591a9b4ec81c1f2042a97aa60564e0cb79d041c52faa7416acb38bc95bd2c76d libelf-0.8.13.tar.gz diff --git a/core/libelf/sources b/core/libelf/sources new file mode 100644 index 00000000..d8f130e7 --- /dev/null +++ b/core/libelf/sources @@ -0,0 +1 @@ +https://fossies.org/linux/misc/old/libelf-0.8.13.tar.gz diff --git a/core/libelf/version b/core/libelf/version new file mode 100644 index 00000000..5af15bd9 --- /dev/null +++ b/core/libelf/version @@ -0,0 +1 @@ +0.8.13 2 diff --git a/core/libnl/build b/core/libnl/build new file mode 100755 index 00000000..105b0ee6 --- /dev/null +++ b/core/libnl/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --disable-static + +make +make DESTDIR="$1" install diff --git a/core/libnl/checksums b/core/libnl/checksums new file mode 100644 index 00000000..44ea30a5 --- /dev/null +++ b/core/libnl/checksums @@ -0,0 +1 @@ +352133ec9545da76f77e70ccb48c9d7e5324d67f6474744647a7ed382b5e05fa libnl-3.5.0.tar.gz diff --git a/core/libnl/sources b/core/libnl/sources new file mode 100644 index 00000000..47e8b9d1 --- /dev/null +++ b/core/libnl/sources @@ -0,0 +1 @@ +https://github.com/thom311/libnl/releases/download/libnl3_5_0/libnl-3.5.0.tar.gz diff --git a/core/libnl/version b/core/libnl/version new file mode 100644 index 00000000..ad1efe9a --- /dev/null +++ b/core/libnl/version @@ -0,0 +1 @@ +3.5.0 1 diff --git a/core/libressl/build b/core/libressl/build new file mode 100755 index 00000000..efe55abb --- /dev/null +++ b/core/libressl/build @@ -0,0 +1,10 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --sysconfdir=/etc + +make +make DESTDIR="$1" install + +install -Dm 755 update-certdata.sh "$1/etc/ssl" diff --git a/core/libressl/checksums b/core/libressl/checksums new file mode 100644 index 00000000..5d28022d --- /dev/null +++ b/core/libressl/checksums @@ -0,0 +1,2 @@ +df7b172bf79b957dd27ef36dcaa1fb162562c0e8999e194aa8c1a3df2f15398e libressl-3.0.2.tar.gz +57cedb6745330bc52df27fd5e80a0c7c757ad36beb3fe16a709cdb990e96087a update-certdata.sh diff --git a/core/libressl/files/update-certdata.sh b/core/libressl/files/update-certdata.sh new file mode 100755 index 00000000..0c333e7a --- /dev/null +++ b/core/libressl/files/update-certdata.sh @@ -0,0 +1,14 @@ +#!/bin/sh -e +# +# update-certdata.sh + +[ -w /etc/ssl ] || { + printf '%s\n' "${0##*/}: root required to update cert." >&2 + exit 1 +} + +cd /etc/ssl && { + wget https://curl.haxx.se/ca/cacert.pem + mv -f cacert.pem cert.pem + printf '%s\n' "${0##*/}: updated cert.pm" +} diff --git a/core/libressl/post-install b/core/libressl/post-install new file mode 100755 index 00000000..c12dca76 --- /dev/null +++ b/core/libressl/post-install @@ -0,0 +1,3 @@ +#!/bin/sh + +/etc/ssl/update-certdata.sh diff --git a/core/libressl/sources b/core/libressl/sources new file mode 100644 index 00000000..3746774e --- /dev/null +++ b/core/libressl/sources @@ -0,0 +1,2 @@ +https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.0.2.tar.gz +files/update-certdata.sh diff --git a/core/libressl/version b/core/libressl/version new file mode 100644 index 00000000..b0b71c8f --- /dev/null +++ b/core/libressl/version @@ -0,0 +1 @@ +3.0.2 1 diff --git a/core/linux-headers/build b/core/linux-headers/build new file mode 100755 index 00000000..5eae502f --- /dev/null +++ b/core/linux-headers/build @@ -0,0 +1,3 @@ +#!/bin/sh -e + +make headers_install INSTALL_HDR_PATH="$1/usr" diff --git a/core/linux-headers/checksums b/core/linux-headers/checksums new file mode 100644 index 00000000..5ac73c7b --- /dev/null +++ b/core/linux-headers/checksums @@ -0,0 +1 @@ +bf338980b1670bca287f9994b7441c2361907635879169c64ae78364efc5f491 linux-5.4.tar.xz diff --git a/core/linux-headers/sources b/core/linux-headers/sources new file mode 100644 index 00000000..e60ccae9 --- /dev/null +++ b/core/linux-headers/sources @@ -0,0 +1 @@ +https://kernel.org/pub/linux/kernel/v5.x/linux-5.4.tar.xz diff --git a/core/linux-headers/version b/core/linux-headers/version new file mode 100644 index 00000000..d8f4edb8 --- /dev/null +++ b/core/linux-headers/version @@ -0,0 +1 @@ +5.4 1 diff --git a/core/m4/build b/core/m4/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/core/m4/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/core/m4/checksums b/core/m4/checksums new file mode 100644 index 00000000..1357398a --- /dev/null +++ b/core/m4/checksums @@ -0,0 +1 @@ +f2c1e86ca0a404ff281631bdc8377638992744b175afb806e25871a24a934e07 m4-1.4.18.tar.xz diff --git a/core/m4/sources b/core/m4/sources new file mode 100644 index 00000000..07be0f71 --- /dev/null +++ b/core/m4/sources @@ -0,0 +1 @@ +https://ftp.gnu.org/gnu/m4/m4-1.4.18.tar.xz diff --git a/core/m4/version b/core/m4/version new file mode 100644 index 00000000..4920469b --- /dev/null +++ b/core/m4/version @@ -0,0 +1 @@ +1.4.18 2 diff --git a/core/make/build b/core/make/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/core/make/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/core/make/checksums b/core/make/checksums new file mode 100644 index 00000000..92e5ce41 --- /dev/null +++ b/core/make/checksums @@ -0,0 +1 @@ +d6e262bf3601b42d2b1e4ef8310029e1dcf20083c5446b4b7aa67081fdffc589 make-4.2.1.tar.bz2 diff --git a/core/make/sources b/core/make/sources new file mode 100644 index 00000000..7a32d60b --- /dev/null +++ b/core/make/sources @@ -0,0 +1 @@ +https://ftp.gnu.org/gnu/make/make-4.2.1.tar.bz2 diff --git a/core/make/version b/core/make/version new file mode 100644 index 00000000..fa7b9c86 --- /dev/null +++ b/core/make/version @@ -0,0 +1 @@ +4.2.1 2 diff --git a/core/mandoc/build b/core/mandoc/build new file mode 100755 index 00000000..5b015e39 --- /dev/null +++ b/core/mandoc/build @@ -0,0 +1,25 @@ +#!/bin/sh -e + +sed -i 's,"more -s","less",g' main.c + +cat > configure.local <<EOF +PREFIX=/usr +MANDIR=/usr/share/man +LIBDIR=/usr/lib +CC="${CC:-gcc}" +CFLAGS="$CFLAGS" +MANPATH_DEFAULT=/usr/share/man +LN="ln -sf" +EOF + +MANPATH_BASE=/usr/share/man ./configure +make +make -j1 DESTDIR="$1" base-install lib-install + +# Make binaries writable. +chmod -v u+w "$1/usr/bin/"* + +# Remove all development files. +rm -rf "$1/usr/include" \ + "$1/usr/lib" \ + "$1/usr/share/man/man3" diff --git a/core/mandoc/checksums b/core/mandoc/checksums new file mode 100644 index 00000000..05dfea01 --- /dev/null +++ b/core/mandoc/checksums @@ -0,0 +1 @@ +8219b42cb56fc07b2aa660574e6211ac38eefdbf21f41b698d3348793ba5d8f7 mandoc-1.14.5.tar.gz diff --git a/core/mandoc/depends b/core/mandoc/depends new file mode 100644 index 00000000..f22003e8 --- /dev/null +++ b/core/mandoc/depends @@ -0,0 +1 @@ +zlib diff --git a/core/mandoc/sources b/core/mandoc/sources new file mode 100644 index 00000000..85f63e7e --- /dev/null +++ b/core/mandoc/sources @@ -0,0 +1 @@ +https://fossies.org/linux/misc/mandoc-1.14.5.tar.gz diff --git a/core/mandoc/version b/core/mandoc/version new file mode 100644 index 00000000..9507d448 --- /dev/null +++ b/core/mandoc/version @@ -0,0 +1 @@ +1.14.5 2 diff --git a/core/musl/build b/core/musl/build new file mode 100755 index 00000000..b2c7144f --- /dev/null +++ b/core/musl/build @@ -0,0 +1,19 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --syslibdir=/usr/lib + +make +make DESTDIR="$1" install + +mkdir -p "$1/usr/bin" +ln -s "/usr/lib/ld-musl-x86_64.so.1" "$1/usr/bin/ldd" + +# Install BSD compatibility headers. +install -Dm 755 cdefs.h "$1/usr/include/sys/cdefs.h" +install -Dm 755 queue.h "$1/usr/include/sys/queue.h" +install -Dm 755 tree.h "$1/usr/include/sys/tree.h" + +# Install getconf. +cc getconf.c -o "$1/usr/bin/getconf" diff --git a/core/musl/checksums b/core/musl/checksums new file mode 100644 index 00000000..59161cfc --- /dev/null +++ b/core/musl/checksums @@ -0,0 +1,5 @@ +1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3 musl-1.1.24.tar.gz +30bb6d7e0e0b61fcd95d830c376c829a614bce4683c1b97e06c201ec2c6e839a cdefs.h +c13407edd0e33be73cae72514cb234f8612e1c0e54401c9448daffd3a240158b queue.h +e1e498a79bf160a5766fa560f2b07b206fe89fe21a62600c77d72e00a6992f92 tree.h +d87d0cbb3690ae2c5d8cc218349fd8278b93855dd625deaf7ae50e320aad247c getconf.c diff --git a/core/musl/files/cdefs.h b/core/musl/files/cdefs.h new file mode 100755 index 00000000..209a623c --- /dev/null +++ b/core/musl/files/cdefs.h @@ -0,0 +1,26 @@ +#warning usage of non-standard #include <sys/cdefs.h> is deprecated + +#undef __P +#undef __PMT + +#define __P(args) args +#define __PMT(args) args + +#define __CONCAT(x,y) x ## y +#define __STRING(x) #x + +#ifdef __cplusplus +# define __BEGIN_DECLS extern "C" { +# define __END_DECLS } +#else +# define __BEGIN_DECLS +# define __END_DECLS +#endif + +#if defined(__GNUC__) && !defined(__cplusplus) +# define __THROW __attribute__ ((__nothrow__)) +# define __NTH(fct) __attribute__ ((__nothrow__)) fct +#else +# define __THROW +# define __NTH(fct) fct +#endif diff --git a/core/musl/files/getconf.c b/core/musl/files/getconf.c new file mode 100644 index 00000000..c4235242 --- /dev/null +++ b/core/musl/files/getconf.c @@ -0,0 +1,338 @@ +/*- + * Copyright (c) 1996, 1998 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by J.T. Conklin. + * + * Mostly rewritten to be used in Alpine Linux (with musl c-library) + * by Timo Teräs. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include <err.h> +#include <errno.h> +#include <values.h> +#include <limits.h> +#include <locale.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <string.h> + +struct conf_variable { + const char *name; + enum { SYSCONF, CONFSTR, PATHCONF, CONSTANT, UCONSTANT, NUM_TYPES } type; + long value; +}; + +static const struct conf_variable conf_table[] = { +{ "PATH", CONFSTR, _CS_PATH }, + +/* Utility Limit Minimum Values */ +{ "POSIX2_BC_BASE_MAX", CONSTANT, _POSIX2_BC_BASE_MAX }, +{ "POSIX2_BC_DIM_MAX", CONSTANT, _POSIX2_BC_DIM_MAX }, +{ "POSIX2_BC_SCALE_MAX", CONSTANT, _POSIX2_BC_SCALE_MAX }, +{ "POSIX2_BC_STRING_MAX", CONSTANT, _POSIX2_BC_STRING_MAX }, +{ "POSIX2_COLL_WEIGHTS_MAX", CONSTANT, _POSIX2_COLL_WEIGHTS_MAX }, +{ "POSIX2_EXPR_NEST_MAX", CONSTANT, _POSIX2_EXPR_NEST_MAX }, +{ "POSIX2_LINE_MAX", CONSTANT, _POSIX2_LINE_MAX }, +{ "POSIX2_RE_DUP_MAX", CONSTANT, _POSIX2_RE_DUP_MAX }, +{ "POSIX2_VERSION", CONSTANT, _POSIX2_VERSION }, + +/* POSIX.1 Minimum Values */ +{ "_POSIX_AIO_LISTIO_MAX", CONSTANT, _POSIX_AIO_LISTIO_MAX }, +{ "_POSIX_AIO_MAX", CONSTANT, _POSIX_AIO_MAX }, +{ "_POSIX_ARG_MAX", CONSTANT, _POSIX_ARG_MAX }, +{ "_POSIX_CHILD_MAX", CONSTANT, _POSIX_CHILD_MAX }, +{ "_POSIX_LINK_MAX", CONSTANT, _POSIX_LINK_MAX }, +{ "_POSIX_MAX_CANON", CONSTANT, _POSIX_MAX_CANON }, +{ "_POSIX_MAX_INPUT", CONSTANT, _POSIX_MAX_INPUT }, +{ "_POSIX_MQ_OPEN_MAX", CONSTANT, _POSIX_MQ_OPEN_MAX }, +{ "_POSIX_MQ_PRIO_MAX", CONSTANT, _POSIX_MQ_PRIO_MAX }, +{ "_POSIX_NAME_MAX", CONSTANT, _POSIX_NAME_MAX }, +{ "_POSIX_NGROUPS_MAX", CONSTANT, _POSIX_NGROUPS_MAX }, +{ "_POSIX_OPEN_MAX", CONSTANT, _POSIX_OPEN_MAX }, +{ "_POSIX_PATH_MAX", CONSTANT, _POSIX_PATH_MAX }, +{ "_POSIX_PIPE_BUF", CONSTANT, _POSIX_PIPE_BUF }, +{ "_POSIX_SSIZE_MAX", CONSTANT, _POSIX_SSIZE_MAX }, +{ "_POSIX_STREAM_MAX", CONSTANT, _POSIX_STREAM_MAX }, +{ "_POSIX_TZNAME_MAX", CONSTANT, _POSIX_TZNAME_MAX }, + +/* Symbolic Utility Limits */ +{ "BC_BASE_MAX", SYSCONF, _SC_BC_BASE_MAX }, +{ "BC_DIM_MAX", SYSCONF, _SC_BC_DIM_MAX }, +{ "BC_SCALE_MAX", SYSCONF, _SC_BC_SCALE_MAX }, +{ "BC_STRING_MAX", SYSCONF, _SC_BC_STRING_MAX }, +{ "COLL_WEIGHTS_MAX", SYSCONF, _SC_COLL_WEIGHTS_MAX }, +{ "EXPR_NEST_MAX", SYSCONF, _SC_EXPR_NEST_MAX }, +{ "LINE_MAX", SYSCONF, _SC_LINE_MAX }, +{ "RE_DUP_MAX", SYSCONF, _SC_RE_DUP_MAX }, + +/* Optional Facility Configuration Values */ +{ "_POSIX2_C_BIND", SYSCONF, _SC_2_C_BIND }, +{ "POSIX2_C_DEV", SYSCONF, _SC_2_C_DEV }, +{ "POSIX2_CHAR_TERM", SYSCONF, _SC_2_CHAR_TERM }, +{ "POSIX2_FORT_DEV", SYSCONF, _SC_2_FORT_DEV }, +{ "POSIX2_FORT_RUN", SYSCONF, _SC_2_FORT_RUN }, +{ "POSIX2_LOCALEDEF", SYSCONF, _SC_2_LOCALEDEF }, +{ "POSIX2_SW_DEV", SYSCONF, _SC_2_SW_DEV }, +{ "POSIX2_UPE", SYSCONF, _SC_2_UPE }, + +/* POSIX.1 Configurable System Variables */ +{ "AIO_LISTIO_MAX", SYSCONF, _SC_AIO_LISTIO_MAX }, +{ "AIO_MAX", SYSCONF, _SC_AIO_MAX }, +{ "ARG_MAX", SYSCONF, _SC_ARG_MAX }, +{ "CHILD_MAX", SYSCONF, _SC_CHILD_MAX }, +{ "CLK_TCK", SYSCONF, _SC_CLK_TCK }, +{ "MQ_OPEN_MAX", SYSCONF, _SC_MQ_OPEN_MAX }, +{ "MQ_PRIO_MAX", SYSCONF, _SC_MQ_PRIO_MAX }, +{ "NGROUPS_MAX", SYSCONF, _SC_NGROUPS_MAX }, +{ "OPEN_MAX", SYSCONF, _SC_OPEN_MAX }, +{ "STREAM_MAX", SYSCONF, _SC_STREAM_MAX }, +{ "TZNAME_MAX", SYSCONF, _SC_TZNAME_MAX }, +{ "_POSIX_JOB_CONTROL", SYSCONF, _SC_JOB_CONTROL }, +{ "_POSIX_SAVED_IDS", SYSCONF, _SC_SAVED_IDS }, +{ "_POSIX_VERSION", SYSCONF, _SC_VERSION }, + +{ "LINK_MAX", PATHCONF, _PC_LINK_MAX }, +{ "MAX_CANON", PATHCONF, _PC_MAX_CANON }, +{ "MAX_INPUT", PATHCONF, _PC_MAX_INPUT }, +{ "NAME_MAX", PATHCONF, _PC_NAME_MAX }, +{ "PATH_MAX", PATHCONF, _PC_PATH_MAX }, +{ "PIPE_BUF", PATHCONF, _PC_PIPE_BUF }, +{ "_POSIX_CHOWN_RESTRICTED", PATHCONF, _PC_CHOWN_RESTRICTED }, +{ "_POSIX_NO_TRUNC", PATHCONF, _PC_NO_TRUNC }, +{ "_POSIX_VDISABLE", PATHCONF, _PC_VDISABLE }, + +/* POSIX.1b Configurable System Variables */ +{ "PAGESIZE", SYSCONF, _SC_PAGESIZE }, +{ "_POSIX_ASYNCHRONOUS_IO", SYSCONF, _SC_ASYNCHRONOUS_IO }, +{ "_POSIX_FSYNC", SYSCONF, _SC_FSYNC }, +{ "_POSIX_MAPPED_FILES", SYSCONF, _SC_MAPPED_FILES }, +{ "_POSIX_MEMLOCK", SYSCONF, _SC_MEMLOCK }, +{ "_POSIX_MEMLOCK_RANGE", SYSCONF, _SC_MEMLOCK_RANGE }, +{ "_POSIX_MEMORY_PROTECTION", SYSCONF, _SC_MEMORY_PROTECTION }, +{ "_POSIX_MESSAGE_PASSING", SYSCONF, _SC_MESSAGE_PASSING }, +{ "_POSIX_MONOTONIC_CLOCK", SYSCONF, _SC_MONOTONIC_CLOCK }, +{ "_POSIX_PRIORITY_SCHEDULING", SYSCONF, _SC_PRIORITY_SCHEDULING }, +{ "_POSIX_SEMAPHORES", SYSCONF, _SC_SEMAPHORES }, +{ "_POSIX_SHARED_MEMORY_OBJECTS", SYSCONF, _SC_SHARED_MEMORY_OBJECTS }, +{ "_POSIX_SYNCHRONIZED_IO", SYSCONF, _SC_SYNCHRONIZED_IO }, +{ "_POSIX_TIMERS", SYSCONF, _SC_TIMERS }, + +{ "_POSIX_SYNC_IO", PATHCONF, _PC_SYNC_IO }, + +/* POSIX.1c Configurable System Variables */ +{ "LOGIN_NAME_MAX", SYSCONF, _SC_LOGIN_NAME_MAX }, +{ "_POSIX_THREADS", SYSCONF, _SC_THREADS }, + +/* POSIX.1j Configurable System Variables */ +{ "_POSIX_BARRIERS", SYSCONF, _SC_BARRIERS }, +{ "_POSIX_READER_WRITER_LOCKS", SYSCONF, _SC_READER_WRITER_LOCKS }, +{ "_POSIX_SPIN_LOCKS", SYSCONF, _SC_SPIN_LOCKS }, + +/* XPG4.2 Configurable System Variables */ +{ "IOV_MAX", SYSCONF, _SC_IOV_MAX }, +{ "PAGE_SIZE", SYSCONF, _SC_PAGE_SIZE }, +{ "_XOPEN_SHM", SYSCONF, _SC_XOPEN_SHM }, + +/* X/Open CAE Spec. Issue 5 Version 2 Configurable System Variables */ +{ "FILESIZEBITS", PATHCONF, _PC_FILESIZEBITS }, + +/* POSIX.1-2001 XSI Option Group Configurable System Variables */ +{ "ATEXIT_MAX", SYSCONF, _SC_ATEXIT_MAX }, + +/* POSIX.1-2001 TSF Configurable System Variables */ +{ "GETGR_R_SIZE_MAX", SYSCONF, _SC_GETGR_R_SIZE_MAX }, +{ "GETPW_R_SIZE_MAX", SYSCONF, _SC_GETPW_R_SIZE_MAX }, + +/* Commonly provided extensions */ +{ "_PHYS_PAGES", SYSCONF, _SC_PHYS_PAGES }, +{ "_AVPHYS_PAGES", SYSCONF, _SC_AVPHYS_PAGES }, +{ "_NPROCESSORS_CONF", SYSCONF, _SC_NPROCESSORS_CONF }, +{ "_NPROCESSORS_ONLN", SYSCONF, _SC_NPROCESSORS_ONLN }, + +/* Data type related extensions */ +{ "CHAR_BIT", CONSTANT, CHAR_BIT }, +{ "CHAR_MAX", CONSTANT, CHAR_MAX }, +{ "CHAR_MIN", CONSTANT, CHAR_MIN }, +{ "INT_MAX", CONSTANT, INT_MAX }, +{ "INT_MIN", CONSTANT, INT_MIN }, +{ "LONG_BIT", CONSTANT, LONG_BIT }, +{ "LONG_MAX", CONSTANT, LONG_MAX }, +{ "LONG_MIN", CONSTANT, LONG_MIN }, +{ "SCHAR_MAX", CONSTANT, SCHAR_MAX }, +{ "SCHAR_MIN", CONSTANT, SCHAR_MIN }, +{ "SHRT_MAX", CONSTANT, SHRT_MAX }, +{ "SHRT_MIN", CONSTANT, SHRT_MIN }, +{ "SSIZE_MAX", CONSTANT, SSIZE_MAX }, +{ "UCHAR_MAX", UCONSTANT, (long) UCHAR_MAX }, +{ "UINT_MAX", UCONSTANT, (long) UINT_MAX }, +{ "ULONG_MAX", UCONSTANT, (long) ULONG_MAX }, +{ "USHRT_MAX", UCONSTANT, (long) USHRT_MAX }, +{ "WORD_BIT", CONSTANT, WORD_BIT }, + +{ NULL, CONSTANT, 0L } +}; + +static int all = 0; + +static void usage(const char *p) +{ + (void)fprintf(stderr, "Usage: %s system_var\n\t%s -a\n" + "\t%s path_var pathname\n\t%s -a pathname\n", p, p, p, p); + exit(EXIT_FAILURE); +} + +static void print_long(const char *name, long val) +{ + if (all) printf("%s = %ld\n", name, val); + else printf("%ld\n", val); +} + +static void print_ulong(const char *name, unsigned long val) +{ + if (all) printf("%s = %lu\n", name, val); + else printf("%lu\n", val); +} + +static void print_string(const char *name, const char *val) +{ + if (all) printf("%s = %s\n", name, val); + else printf("%s\n", val); +} + +static int print_constant(const struct conf_variable *cp, const char *pathname) +{ + print_long(cp->name, cp->value); + return 0; +} + +static int print_uconstant(const struct conf_variable *cp, const char *pathname) +{ + print_ulong(cp->name, (unsigned long) cp->value); + return 0; +} + +static int print_sysconf(const struct conf_variable *cp, const char *pathname) +{ + long val; + + errno = 0; + if ((val = sysconf((int)cp->value)) == -1) { + if (errno != 0) err(EXIT_FAILURE, "sysconf(%ld)", cp->value); + return -1; + } + print_long(cp->name, val); + return 0; +} + +static int print_confstr(const struct conf_variable *cp, const char *pathname) +{ + size_t len; + char *val; + + errno = 0; + if ((len = confstr((int)cp->value, NULL, 0)) == 0) goto error; + if ((val = malloc(len)) == NULL) err(EXIT_FAILURE, "Can't allocate %zu bytes", len); + errno = 0; + if (confstr((int)cp->value, val, len) == 0) goto error; + print_string(cp->name, val); + free(val); + return 0; +error: + if (errno != EINVAL) err(EXIT_FAILURE, "confstr(%ld)", cp->value); + return -1; +} + +static int print_pathconf(const struct conf_variable *cp, const char *pathname) +{ + long val; + + errno = 0; + if ((val = pathconf(pathname, (int)cp->value)) == -1) { + if (all && errno == EINVAL) return 0; + if (errno != 0) err(EXIT_FAILURE, "pathconf(%s, %ld)", pathname, cp->value); + return -1; + } + print_long(cp->name, val); + return 0; +} + +typedef int (*handler_t)(const struct conf_variable *cp, const char *pathname); +static const handler_t type_handlers[NUM_TYPES] = { + [SYSCONF] = print_sysconf, + [CONFSTR] = print_confstr, + [PATHCONF] = print_pathconf, + [CONSTANT] = print_constant, + [UCONSTANT] = print_uconstant, +}; + +int main(int argc, char **argv) +{ + const char *progname = argv[0]; + const struct conf_variable *cp; + const char *varname, *pathname; + int ch, found = 0; + + (void)setlocale(LC_ALL, ""); + while ((ch = getopt(argc, argv, "a")) != -1) { + switch (ch) { + case 'a': + all = 1; + break; + case '?': + default: + usage(progname); + } + } + argc -= optind; + argv += optind; + + if (!all) { + if (argc == 0) + usage(progname); + varname = argv[0]; + argc--; + argv++; + } else + varname = NULL; + + if (argc > 1) + usage(progname); + pathname = argv[0]; /* may be NULL */ + + for (cp = conf_table; cp->name != NULL; cp++) { + if (!all && strcmp(varname, cp->name) != 0) continue; + if ((cp->type == PATHCONF) == (pathname != NULL)) { + if (type_handlers[cp->type](cp, pathname) < 0) + print_string(cp->name, "undefined"); + found = 1; + } else if (!all) + errx(EXIT_FAILURE, "%s: invalid variable type", cp->name); + } + if (!all && !found) errx(EXIT_FAILURE, "%s: unknown variable", varname); + (void)fflush(stdout); + return ferror(stdout) ? EXIT_FAILURE : EXIT_SUCCESS; +} diff --git a/core/musl/files/queue.h b/core/musl/files/queue.h new file mode 100755 index 00000000..a38499a2 --- /dev/null +++ b/core/musl/files/queue.h @@ -0,0 +1,846 @@ +/* $NetBSD: queue.h,v 1.70 2015/11/02 15:21:23 christos Exp $ */ + +/* + * Copyright (c) 1991, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)queue.h 8.5 (Berkeley) 8/20/94 + */ + +#ifndef _SYS_QUEUE_H_ +#define _SYS_QUEUE_H_ + +/* + * This file defines five types of data structures: singly-linked lists, + * lists, simple queues, tail queues, and circular queues. + * + * A singly-linked list is headed by a single forward pointer. The + * elements are singly linked for minimum space and pointer manipulation + * overhead at the expense of O(n) removal for arbitrary elements. New + * elements can be added to the list after an existing element or at the + * head of the list. Elements being removed from the head of the list + * should use the explicit macro for this purpose for optimum + * efficiency. A singly-linked list may only be traversed in the forward + * direction. Singly-linked lists are ideal for applications with large + * datasets and few or no removals or for implementing a LIFO queue. + * + * A list is headed by a single forward pointer (or an array of forward + * pointers for a hash table header). The elements are doubly linked + * so that an arbitrary element can be removed without a need to + * traverse the list. New elements can be added to the list before + * or after an existing element or at the head of the list. A list + * may only be traversed in the forward direction. + * + * A simple queue is headed by a pair of pointers, one the head of the + * list and the other to the tail of the list. The elements are singly + * linked to save space, so elements can only be removed from the + * head of the list. New elements can be added to the list after + * an existing element, at the head of the list, or at the end of the + * list. A simple queue may only be traversed in the forward direction. + * + * A tail queue is headed by a pair of pointers, one to the head of the + * list and the other to the tail of the list. The elements are doubly + * linked so that an arbitrary element can be removed without a need to + * traverse the list. New elements can be added to the list before or + * after an existing element, at the head of the list, or at the end of + * the list. A tail queue may be traversed in either direction. + * + * A circle queue is headed by a pair of pointers, one to the head of the + * list and the other to the tail of the list. The elements are doubly + * linked so that an arbitrary element can be removed without a need to + * traverse the list. New elements can be added to the list before or after + * an existing element, at the head of the list, or at the end of the list. + * A circle queue may be traversed in either direction, but has a more + * complex end of list detection. + * + * For details on the use of these macros, see the queue(3) manual page. + */ + +/* + * Include the definition of NULL only on NetBSD because sys/null.h + * is not available elsewhere. This conditional makes the header + * portable and it can simply be dropped verbatim into any system. + * The caveat is that on other systems some other header + * must provide NULL before the macros can be used. + */ +#ifdef __NetBSD__ +#include <sys/null.h> +#endif + +#if defined(QUEUEDEBUG) +# if defined(_KERNEL) +# define QUEUEDEBUG_ABORT(...) panic(__VA_ARGS__) +# else +# include <err.h> +# define QUEUEDEBUG_ABORT(...) err(1, __VA_ARGS__) +# endif +#endif + +/* + * Singly-linked List definitions. + */ +#define SLIST_HEAD(name, type) \ +struct name { \ + struct type *slh_first; /* first element */ \ +} + +#define SLIST_HEAD_INITIALIZER(head) \ + { NULL } + +#define SLIST_ENTRY(type) \ +struct { \ + struct type *sle_next; /* next element */ \ +} + +/* + * Singly-linked List access methods. + */ +#define SLIST_FIRST(head) ((head)->slh_first) +#define SLIST_END(head) NULL +#define SLIST_EMPTY(head) ((head)->slh_first == NULL) +#define SLIST_NEXT(elm, field) ((elm)->field.sle_next) + +#define SLIST_FOREACH(var, head, field) \ + for((var) = (head)->slh_first; \ + (var) != SLIST_END(head); \ + (var) = (var)->field.sle_next) + +#define SLIST_FOREACH_SAFE(var, head, field, tvar) \ + for ((var) = SLIST_FIRST((head)); \ + (var) != SLIST_END(head) && \ + ((tvar) = SLIST_NEXT((var), field), 1); \ + (var) = (tvar)) + +/* + * Singly-linked List functions. + */ +#define SLIST_INIT(head) do { \ + (head)->slh_first = SLIST_END(head); \ +} while (/*CONSTCOND*/0) + +#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ + (elm)->field.sle_next = (slistelm)->field.sle_next; \ + (slistelm)->field.sle_next = (elm); \ +} while (/*CONSTCOND*/0) + +#define SLIST_INSERT_HEAD(head, elm, field) do { \ + (elm)->field.sle_next = (head)->slh_first; \ + (head)->slh_first = (elm); \ +} while (/*CONSTCOND*/0) + +#define SLIST_REMOVE_AFTER(slistelm, field) do { \ + (slistelm)->field.sle_next = \ + SLIST_NEXT(SLIST_NEXT((slistelm), field), field); \ +} while (/*CONSTCOND*/0) + +#define SLIST_REMOVE_HEAD(head, field) do { \ + (head)->slh_first = (head)->slh_first->field.sle_next; \ +} while (/*CONSTCOND*/0) + +#define SLIST_REMOVE(head, elm, type, field) do { \ + if ((head)->slh_first == (elm)) { \ + SLIST_REMOVE_HEAD((head), field); \ + } \ + else { \ + struct type *curelm = (head)->slh_first; \ + while(curelm->field.sle_next != (elm)) \ + curelm = curelm->field.sle_next; \ + curelm->field.sle_next = \ + curelm->field.sle_next->field.sle_next; \ + } \ +} while (/*CONSTCOND*/0) + + +/* + * List definitions. + */ +#define LIST_HEAD(name, type) \ +struct name { \ + struct type *lh_first; /* first element */ \ +} + +#define LIST_HEAD_INITIALIZER(head) \ + { NULL } + +#define LIST_ENTRY(type) \ +struct { \ + struct type *le_next; /* next element */ \ + struct type **le_prev; /* address of previous next element */ \ +} + +/* + * List access methods. + */ +#define LIST_FIRST(head) ((head)->lh_first) +#define LIST_END(head) NULL +#define LIST_EMPTY(head) ((head)->lh_first == LIST_END(head)) +#define LIST_NEXT(elm, field) ((elm)->field.le_next) + +#define LIST_FOREACH(var, head, field) \ + for ((var) = ((head)->lh_first); \ + (var) != LIST_END(head); \ + (var) = ((var)->field.le_next)) + +#define LIST_FOREACH_SAFE(var, head, field, tvar) \ + for ((var) = LIST_FIRST((head)); \ + (var) != LIST_END(head) && \ + ((tvar) = LIST_NEXT((var), field), 1); \ + (var) = (tvar)) + +#define LIST_MOVE(head1, head2) do { \ + LIST_INIT((head2)); \ + if (!LIST_EMPTY((head1))) { \ + (head2)->lh_first = (head1)->lh_first; \ + LIST_INIT((head1)); \ + } \ +} while (/*CONSTCOND*/0) + +/* + * List functions. + */ +#if defined(QUEUEDEBUG) +#define QUEUEDEBUG_LIST_INSERT_HEAD(head, elm, field) \ + if ((head)->lh_first && \ + (head)->lh_first->field.le_prev != &(head)->lh_first) \ + QUEUEDEBUG_ABORT("LIST_INSERT_HEAD %p %s:%d", (head), \ + __FILE__, __LINE__); +#define QUEUEDEBUG_LIST_OP(elm, field) \ + if ((elm)->field.le_next && \ + (elm)->field.le_next->field.le_prev != \ + &(elm)->field.le_next) \ + QUEUEDEBUG_ABORT("LIST_* forw %p %s:%d", (elm), \ + __FILE__, __LINE__); \ + if (*(elm)->field.le_prev != (elm)) \ + QUEUEDEBUG_ABORT("LIST_* back %p %s:%d", (elm), \ + __FILE__, __LINE__); +#define QUEUEDEBUG_LIST_POSTREMOVE(elm, field) \ + (elm)->field.le_next = (void *)1L; \ + (elm)->field.le_prev = (void *)1L; +#else +#define QUEUEDEBUG_LIST_INSERT_HEAD(head, elm, field) +#define QUEUEDEBUG_LIST_OP(elm, field) +#define QUEUEDEBUG_LIST_POSTREMOVE(elm, field) +#endif + +#define LIST_INIT(head) do { \ + (head)->lh_first = LIST_END(head); \ +} while (/*CONSTCOND*/0) + +#define LIST_INSERT_AFTER(listelm, elm, field) do { \ + QUEUEDEBUG_LIST_OP((listelm), field) \ + if (((elm)->field.le_next = (listelm)->field.le_next) != \ + LIST_END(head)) \ + (listelm)->field.le_next->field.le_prev = \ + &(elm)->field.le_next; \ + (listelm)->field.le_next = (elm); \ + (elm)->field.le_prev = &(listelm)->field.le_next; \ +} while (/*CONSTCOND*/0) + +#define LIST_INSERT_BEFORE(listelm, elm, field) do { \ + QUEUEDEBUG_LIST_OP((listelm), field) \ + (elm)->field.le_prev = (listelm)->field.le_prev; \ + (elm)->field.le_next = (listelm); \ + *(listelm)->field.le_prev = (elm); \ + (listelm)->field.le_prev = &(elm)->field.le_next; \ +} while (/*CONSTCOND*/0) + +#define LIST_INSERT_HEAD(head, elm, field) do { \ + QUEUEDEBUG_LIST_INSERT_HEAD((head), (elm), field) \ + if (((elm)->field.le_next = (head)->lh_first) != LIST_END(head))\ + (head)->lh_first->field.le_prev = &(elm)->field.le_next;\ + (head)->lh_first = (elm); \ + (elm)->field.le_prev = &(head)->lh_first; \ +} while (/*CONSTCOND*/0) + +#define LIST_REMOVE(elm, field) do { \ + QUEUEDEBUG_LIST_OP((elm), field) \ + if ((elm)->field.le_next != NULL) \ + (elm)->field.le_next->field.le_prev = \ + (elm)->field.le_prev; \ + *(elm)->field.le_prev = (elm)->field.le_next; \ + QUEUEDEBUG_LIST_POSTREMOVE((elm), field) \ +} while (/*CONSTCOND*/0) + +#define LIST_REPLACE(elm, elm2, field) do { \ + if (((elm2)->field.le_next = (elm)->field.le_next) != NULL) \ + (elm2)->field.le_next->field.le_prev = \ + &(elm2)->field.le_next; \ + (elm2)->field.le_prev = (elm)->field.le_prev; \ + *(elm2)->field.le_prev = (elm2); \ + QUEUEDEBUG_LIST_POSTREMOVE((elm), field) \ +} while (/*CONSTCOND*/0) + +/* + * Simple queue definitions. + */ +#define SIMPLEQ_HEAD(name, type) \ +struct name { \ + struct type *sqh_first; /* first element */ \ + struct type **sqh_last; /* addr of last next element */ \ +} + +#define SIMPLEQ_HEAD_INITIALIZER(head) \ + { NULL, &(head).sqh_first } + +#define SIMPLEQ_ENTRY(type) \ +struct { \ + struct type *sqe_next; /* next element */ \ +} + +/* + * Simple queue access methods. + */ +#define SIMPLEQ_FIRST(head) ((head)->sqh_first) +#define SIMPLEQ_END(head) NULL +#define SIMPLEQ_EMPTY(head) ((head)->sqh_first == SIMPLEQ_END(head)) +#define SIMPLEQ_NEXT(elm, field) ((elm)->field.sqe_next) + +#define SIMPLEQ_FOREACH(var, head, field) \ + for ((var) = ((head)->sqh_first); \ + (var) != SIMPLEQ_END(head); \ + (var) = ((var)->field.sqe_next)) + +#define SIMPLEQ_FOREACH_SAFE(var, head, field, next) \ + for ((var) = ((head)->sqh_first); \ + (var) != SIMPLEQ_END(head) && \ + ((next = ((var)->field.sqe_next)), 1); \ + (var) = (next)) + +/* + * Simple queue functions. + */ +#define SIMPLEQ_INIT(head) do { \ + (head)->sqh_first = NULL; \ + (head)->sqh_last = &(head)->sqh_first; \ +} while (/*CONSTCOND*/0) + +#define SIMPLEQ_INSERT_HEAD(head, elm, field) do { \ + if (((elm)->field.sqe_next = (head)->sqh_first) == NULL) \ + (head)->sqh_last = &(elm)->field.sqe_next; \ + (head)->sqh_first = (elm); \ +} while (/*CONSTCOND*/0) + +#define SIMPLEQ_INSERT_TAIL(head, elm, field) do { \ + (elm)->field.sqe_next = NULL; \ + *(head)->sqh_last = (elm); \ + (head)->sqh_last = &(elm)->field.sqe_next; \ +} while (/*CONSTCOND*/0) + +#define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ + if (((elm)->field.sqe_next = (listelm)->field.sqe_next) == NULL)\ + (head)->sqh_last = &(elm)->field.sqe_next; \ + (listelm)->field.sqe_next = (elm); \ +} while (/*CONSTCOND*/0) + +#define SIMPLEQ_REMOVE_HEAD(head, field) do { \ + if (((head)->sqh_first = (head)->sqh_first->field.sqe_next) == NULL) \ + (head)->sqh_last = &(head)->sqh_first; \ +} while (/*CONSTCOND*/0) + +#define SIMPLEQ_REMOVE_AFTER(head, elm, field) do { \ + if (((elm)->field.sqe_next = (elm)->field.sqe_next->field.sqe_next) \ + == NULL) \ + (head)->sqh_last = &(elm)->field.sqe_next; \ +} while (/*CONSTCOND*/0) + +#define SIMPLEQ_REMOVE(head, elm, type, field) do { \ + if ((head)->sqh_first == (elm)) { \ + SIMPLEQ_REMOVE_HEAD((head), field); \ + } else { \ + struct type *curelm = (head)->sqh_first; \ + while (curelm->field.sqe_next != (elm)) \ + curelm = curelm->field.sqe_next; \ + if ((curelm->field.sqe_next = \ + curelm->field.sqe_next->field.sqe_next) == NULL) \ + (head)->sqh_last = &(curelm)->field.sqe_next; \ + } \ +} while (/*CONSTCOND*/0) + +#define SIMPLEQ_CONCAT(head1, head2) do { \ + if (!SIMPLEQ_EMPTY((head2))) { \ + *(head1)->sqh_last = (head2)->sqh_first; \ + (head1)->sqh_last = (head2)->sqh_last; \ + SIMPLEQ_INIT((head2)); \ + } \ +} while (/*CONSTCOND*/0) + +#define SIMPLEQ_LAST(head, type, field) \ + (SIMPLEQ_EMPTY((head)) ? \ + NULL : \ + ((struct type *)(void *) \ + ((char *)((head)->sqh_last) - offsetof(struct type, field)))) + +/* + * Tail queue definitions. + */ +#define _TAILQ_HEAD(name, type, qual) \ +struct name { \ + qual type *tqh_first; /* first element */ \ + qual type *qual *tqh_last; /* addr of last next element */ \ +} +#define TAILQ_HEAD(name, type) _TAILQ_HEAD(name, struct type,) + +#define TAILQ_HEAD_INITIALIZER(head) \ + { TAILQ_END(head), &(head).tqh_first } + +#define _TAILQ_ENTRY(type, qual) \ +struct { \ + qual type *tqe_next; /* next element */ \ + qual type *qual *tqe_prev; /* address of previous next element */\ +} +#define TAILQ_ENTRY(type) _TAILQ_ENTRY(struct type,) + +/* + * Tail queue access methods. + */ +#define TAILQ_FIRST(head) ((head)->tqh_first) +#define TAILQ_END(head) (NULL) +#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) +#define TAILQ_LAST(head, headname) \ + (*(((struct headname *)(void *)((head)->tqh_last))->tqh_last)) +#define TAILQ_PREV(elm, headname, field) \ + (*(((struct headname *)(void *)((elm)->field.tqe_prev))->tqh_last)) +#define TAILQ_EMPTY(head) (TAILQ_FIRST(head) == TAILQ_END(head)) + + +#define TAILQ_FOREACH(var, head, field) \ + for ((var) = ((head)->tqh_first); \ + (var) != TAILQ_END(head); \ + (var) = ((var)->field.tqe_next)) + +#define TAILQ_FOREACH_SAFE(var, head, field, next) \ + for ((var) = ((head)->tqh_first); \ + (var) != TAILQ_END(head) && \ + ((next) = TAILQ_NEXT(var, field), 1); (var) = (next)) + +#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ + for ((var) = TAILQ_LAST((head), headname); \ + (var) != TAILQ_END(head); \ + (var) = TAILQ_PREV((var), headname, field)) + +#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, prev) \ + for ((var) = TAILQ_LAST((head), headname); \ + (var) != TAILQ_END(head) && \ + ((prev) = TAILQ_PREV((var), headname, field), 1); (var) = (prev)) + +/* + * Tail queue functions. + */ +#if defined(QUEUEDEBUG) +#define QUEUEDEBUG_TAILQ_INSERT_HEAD(head, elm, field) \ + if ((head)->tqh_first && \ + (head)->tqh_first->field.tqe_prev != &(head)->tqh_first) \ + QUEUEDEBUG_ABORT("TAILQ_INSERT_HEAD %p %s:%d", (head), \ + __FILE__, __LINE__); +#define QUEUEDEBUG_TAILQ_INSERT_TAIL(head, elm, field) \ + if (*(head)->tqh_last != NULL) \ + QUEUEDEBUG_ABORT("TAILQ_INSERT_TAIL %p %s:%d", (head), \ + __FILE__, __LINE__); +#define QUEUEDEBUG_TAILQ_OP(elm, field) \ + if ((elm)->field.tqe_next && \ + (elm)->field.tqe_next->field.tqe_prev != \ + &(elm)->field.tqe_next) \ + QUEUEDEBUG_ABORT("TAILQ_* forw %p %s:%d", (elm), \ + __FILE__, __LINE__); \ + if (*(elm)->field.tqe_prev != (elm)) \ + QUEUEDEBUG_ABORT("TAILQ_* back %p %s:%d", (elm), \ + __FILE__, __LINE__); +#define QUEUEDEBUG_TAILQ_PREREMOVE(head, elm, field) \ + if ((elm)->field.tqe_next == NULL && \ + (head)->tqh_last != &(elm)->field.tqe_next) \ + QUEUEDEBUG_ABORT("TAILQ_PREREMOVE head %p elm %p %s:%d",\ + (head), (elm), __FILE__, __LINE__); +#define QUEUEDEBUG_TAILQ_POSTREMOVE(elm, field) \ + (elm)->field.tqe_next = (void *)1L; \ + (elm)->field.tqe_prev = (void *)1L; +#else +#define QUEUEDEBUG_TAILQ_INSERT_HEAD(head, elm, field) +#define QUEUEDEBUG_TAILQ_INSERT_TAIL(head, elm, field) +#define QUEUEDEBUG_TAILQ_OP(elm, field) +#define QUEUEDEBUG_TAILQ_PREREMOVE(head, elm, field) +#define QUEUEDEBUG_TAILQ_POSTREMOVE(elm, field) +#endif + +#define TAILQ_INIT(head) do { \ + (head)->tqh_first = TAILQ_END(head); \ + (head)->tqh_last = &(head)->tqh_first; \ +} while (/*CONSTCOND*/0) + +#define TAILQ_INSERT_HEAD(head, elm, field) do { \ + QUEUEDEBUG_TAILQ_INSERT_HEAD((head), (elm), field) \ + if (((elm)->field.tqe_next = (head)->tqh_first) != TAILQ_END(head))\ + (head)->tqh_first->field.tqe_prev = \ + &(elm)->field.tqe_next; \ + else \ + (head)->tqh_last = &(elm)->field.tqe_next; \ + (head)->tqh_first = (elm); \ + (elm)->field.tqe_prev = &(head)->tqh_first; \ +} while (/*CONSTCOND*/0) + +#define TAILQ_INSERT_TAIL(head, elm, field) do { \ + QUEUEDEBUG_TAILQ_INSERT_TAIL((head), (elm), field) \ + (elm)->field.tqe_next = TAILQ_END(head); \ + (elm)->field.tqe_prev = (head)->tqh_last; \ + *(head)->tqh_last = (elm); \ + (head)->tqh_last = &(elm)->field.tqe_next; \ +} while (/*CONSTCOND*/0) + +#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ + QUEUEDEBUG_TAILQ_OP((listelm), field) \ + if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != \ + TAILQ_END(head)) \ + (elm)->field.tqe_next->field.tqe_prev = \ + &(elm)->field.tqe_next; \ + else \ + (head)->tqh_last = &(elm)->field.tqe_next; \ + (listelm)->field.tqe_next = (elm); \ + (elm)->field.tqe_prev = &(listelm)->field.tqe_next; \ +} while (/*CONSTCOND*/0) + +#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ + QUEUEDEBUG_TAILQ_OP((listelm), field) \ + (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \ + (elm)->field.tqe_next = (listelm); \ + *(listelm)->field.tqe_prev = (elm); \ + (listelm)->field.tqe_prev = &(elm)->field.tqe_next; \ +} while (/*CONSTCOND*/0) + +#define TAILQ_REMOVE(head, elm, field) do { \ + QUEUEDEBUG_TAILQ_PREREMOVE((head), (elm), field) \ + QUEUEDEBUG_TAILQ_OP((elm), field) \ + if (((elm)->field.tqe_next) != TAILQ_END(head)) \ + (elm)->field.tqe_next->field.tqe_prev = \ + (elm)->field.tqe_prev; \ + else \ + (head)->tqh_last = (elm)->field.tqe_prev; \ + *(elm)->field.tqe_prev = (elm)->field.tqe_next; \ + QUEUEDEBUG_TAILQ_POSTREMOVE((elm), field); \ +} while (/*CONSTCOND*/0) + +#define TAILQ_REPLACE(head, elm, elm2, field) do { \ + if (((elm2)->field.tqe_next = (elm)->field.tqe_next) != \ + TAILQ_END(head)) \ + (elm2)->field.tqe_next->field.tqe_prev = \ + &(elm2)->field.tqe_next; \ + else \ + (head)->tqh_last = &(elm2)->field.tqe_next; \ + (elm2)->field.tqe_prev = (elm)->field.tqe_prev; \ + *(elm2)->field.tqe_prev = (elm2); \ + QUEUEDEBUG_TAILQ_POSTREMOVE((elm), field); \ +} while (/*CONSTCOND*/0) + +#define TAILQ_CONCAT(head1, head2, field) do { \ + if (!TAILQ_EMPTY(head2)) { \ + *(head1)->tqh_last = (head2)->tqh_first; \ + (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \ + (head1)->tqh_last = (head2)->tqh_last; \ + TAILQ_INIT((head2)); \ + } \ +} while (/*CONSTCOND*/0) + +/* + * Singly-linked Tail queue declarations. + */ +#define STAILQ_HEAD(name, type) \ +struct name { \ + struct type *stqh_first; /* first element */ \ + struct type **stqh_last; /* addr of last next element */ \ +} + +#define STAILQ_HEAD_INITIALIZER(head) \ + { NULL, &(head).stqh_first } + +#define STAILQ_ENTRY(type) \ +struct { \ + struct type *stqe_next; /* next element */ \ +} + +/* + * Singly-linked Tail queue access methods. + */ +#define STAILQ_FIRST(head) ((head)->stqh_first) +#define STAILQ_END(head) NULL +#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) +#define STAILQ_EMPTY(head) (STAILQ_FIRST(head) == STAILQ_END(head)) + +/* + * Singly-linked Tail queue functions. + */ +#define STAILQ_INIT(head) do { \ + (head)->stqh_first = NULL; \ + (head)->stqh_last = &(head)->stqh_first; \ +} while (/*CONSTCOND*/0) + +#define STAILQ_INSERT_HEAD(head, elm, field) do { \ + if (((elm)->field.stqe_next = (head)->stqh_first) == NULL) \ + (head)->stqh_last = &(elm)->field.stqe_next; \ + (head)->stqh_first = (elm); \ +} while (/*CONSTCOND*/0) + +#define STAILQ_INSERT_TAIL(head, elm, field) do { \ + (elm)->field.stqe_next = NULL; \ + *(head)->stqh_last = (elm); \ + (head)->stqh_last = &(elm)->field.stqe_next; \ +} while (/*CONSTCOND*/0) + +#define STAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ + if (((elm)->field.stqe_next = (listelm)->field.stqe_next) == NULL)\ + (head)->stqh_last = &(elm)->field.stqe_next; \ + (listelm)->field.stqe_next = (elm); \ +} while (/*CONSTCOND*/0) + +#define STAILQ_REMOVE_HEAD(head, field) do { \ + if (((head)->stqh_first = (head)->stqh_first->field.stqe_next) == NULL) \ + (head)->stqh_last = &(head)->stqh_first; \ +} while (/*CONSTCOND*/0) + +#define STAILQ_REMOVE(head, elm, type, field) do { \ + if ((head)->stqh_first == (elm)) { \ + STAILQ_REMOVE_HEAD((head), field); \ + } else { \ + struct type *curelm = (head)->stqh_first; \ + while (curelm->field.stqe_next != (elm)) \ + curelm = curelm->field.stqe_next; \ + if ((curelm->field.stqe_next = \ + curelm->field.stqe_next->field.stqe_next) == NULL) \ + (head)->stqh_last = &(curelm)->field.stqe_next; \ + } \ +} while (/*CONSTCOND*/0) + +#define STAILQ_FOREACH(var, head, field) \ + for ((var) = ((head)->stqh_first); \ + (var); \ + (var) = ((var)->field.stqe_next)) + +#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ + for ((var) = STAILQ_FIRST((head)); \ + (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \ + (var) = (tvar)) + +#define STAILQ_CONCAT(head1, head2) do { \ + if (!STAILQ_EMPTY((head2))) { \ + *(head1)->stqh_last = (head2)->stqh_first; \ + (head1)->stqh_last = (head2)->stqh_last; \ + STAILQ_INIT((head2)); \ + } \ +} while (/*CONSTCOND*/0) + +#define STAILQ_LAST(head, type, field) \ + (STAILQ_EMPTY((head)) ? \ + NULL : \ + ((struct type *)(void *) \ + ((char *)((head)->stqh_last) - offsetof(struct type, field)))) + + +#ifndef _KERNEL +/* + * Circular queue definitions. Do not use. We still keep the macros + * for compatibility but because of pointer aliasing issues their use + * is discouraged! + */ + +/* + * __launder_type(): We use this ugly hack to work around the the compiler + * noticing that two types may not alias each other and elide tests in code. + * We hit this in the CIRCLEQ macros when comparing 'struct name *' and + * 'struct type *' (see CIRCLEQ_HEAD()). Modern compilers (such as GCC + * 4.8) declare these comparisons as always false, causing the code to + * not run as designed. + * + * This hack is only to be used for comparisons and thus can be fully const. + * Do not use for assignment. + * + * If we ever choose to change the ABI of the CIRCLEQ macros, we could fix + * this by changing the head/tail sentinal values, but see the note above + * this one. + */ +static __inline const void * __launder_type(const void *); +static __inline const void * +__launder_type(const void *__x) +{ + __asm __volatile("" : "+r" (__x)); + return __x; +} + +#if defined(QUEUEDEBUG) +#define QUEUEDEBUG_CIRCLEQ_HEAD(head, field) \ + if ((head)->cqh_first != CIRCLEQ_ENDC(head) && \ + (head)->cqh_first->field.cqe_prev != CIRCLEQ_ENDC(head)) \ + QUEUEDEBUG_ABORT("CIRCLEQ head forw %p %s:%d", (head), \ + __FILE__, __LINE__); \ + if ((head)->cqh_last != CIRCLEQ_ENDC(head) && \ + (head)->cqh_last->field.cqe_next != CIRCLEQ_ENDC(head)) \ + QUEUEDEBUG_ABORT("CIRCLEQ head back %p %s:%d", (head), \ + __FILE__, __LINE__); +#define QUEUEDEBUG_CIRCLEQ_ELM(head, elm, field) \ + if ((elm)->field.cqe_next == CIRCLEQ_ENDC(head)) { \ + if ((head)->cqh_last != (elm)) \ + QUEUEDEBUG_ABORT("CIRCLEQ elm last %p %s:%d", \ + (elm), __FILE__, __LINE__); \ + } else { \ + if ((elm)->field.cqe_next->field.cqe_prev != (elm)) \ + QUEUEDEBUG_ABORT("CIRCLEQ elm forw %p %s:%d", \ + (elm), __FILE__, __LINE__); \ + } \ + if ((elm)->field.cqe_prev == CIRCLEQ_ENDC(head)) { \ + if ((head)->cqh_first != (elm)) \ + QUEUEDEBUG_ABORT("CIRCLEQ elm first %p %s:%d", \ + (elm), __FILE__, __LINE__); \ + } else { \ + if ((elm)->field.cqe_prev->field.cqe_next != (elm)) \ + QUEUEDEBUG_ABORT("CIRCLEQ elm prev %p %s:%d", \ + (elm), __FILE__, __LINE__); \ + } +#define QUEUEDEBUG_CIRCLEQ_POSTREMOVE(elm, field) \ + (elm)->field.cqe_next = (void *)1L; \ + (elm)->field.cqe_prev = (void *)1L; +#else +#define QUEUEDEBUG_CIRCLEQ_HEAD(head, field) +#define QUEUEDEBUG_CIRCLEQ_ELM(head, elm, field) +#define QUEUEDEBUG_CIRCLEQ_POSTREMOVE(elm, field) +#endif + +#define CIRCLEQ_HEAD(name, type) \ +struct name { \ + struct type *cqh_first; /* first element */ \ + struct type *cqh_last; /* last element */ \ +} + +#define CIRCLEQ_HEAD_INITIALIZER(head) \ + { CIRCLEQ_END(&head), CIRCLEQ_END(&head) } + +#define CIRCLEQ_ENTRY(type) \ +struct { \ + struct type *cqe_next; /* next element */ \ + struct type *cqe_prev; /* previous element */ \ +} + +/* + * Circular queue functions. + */ +#define CIRCLEQ_INIT(head) do { \ + (head)->cqh_first = CIRCLEQ_END(head); \ + (head)->cqh_last = CIRCLEQ_END(head); \ +} while (/*CONSTCOND*/0) + +#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ + QUEUEDEBUG_CIRCLEQ_HEAD((head), field) \ + QUEUEDEBUG_CIRCLEQ_ELM((head), (listelm), field) \ + (elm)->field.cqe_next = (listelm)->field.cqe_next; \ + (elm)->field.cqe_prev = (listelm); \ + if ((listelm)->field.cqe_next == CIRCLEQ_ENDC(head)) \ + (head)->cqh_last = (elm); \ + else \ + (listelm)->field.cqe_next->field.cqe_prev = (elm); \ + (listelm)->field.cqe_next = (elm); \ +} while (/*CONSTCOND*/0) + +#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \ + QUEUEDEBUG_CIRCLEQ_HEAD((head), field) \ + QUEUEDEBUG_CIRCLEQ_ELM((head), (listelm), field) \ + (elm)->field.cqe_next = (listelm); \ + (elm)->field.cqe_prev = (listelm)->field.cqe_prev; \ + if ((listelm)->field.cqe_prev == CIRCLEQ_ENDC(head)) \ + (head)->cqh_first = (elm); \ + else \ + (listelm)->field.cqe_prev->field.cqe_next = (elm); \ + (listelm)->field.cqe_prev = (elm); \ +} while (/*CONSTCOND*/0) + +#define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \ + QUEUEDEBUG_CIRCLEQ_HEAD((head), field) \ + (elm)->field.cqe_next = (head)->cqh_first; \ + (elm)->field.cqe_prev = CIRCLEQ_END(head); \ + if ((head)->cqh_last == CIRCLEQ_ENDC(head)) \ + (head)->cqh_last = (elm); \ + else \ + (head)->cqh_first->field.cqe_prev = (elm); \ + (head)->cqh_first = (elm); \ +} while (/*CONSTCOND*/0) + +#define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \ + QUEUEDEBUG_CIRCLEQ_HEAD((head), field) \ + (elm)->field.cqe_next = CIRCLEQ_END(head); \ + (elm)->field.cqe_prev = (head)->cqh_last; \ + if ((head)->cqh_first == CIRCLEQ_ENDC(head)) \ + (head)->cqh_first = (elm); \ + else \ + (head)->cqh_last->field.cqe_next = (elm); \ + (head)->cqh_last = (elm); \ +} while (/*CONSTCOND*/0) + +#define CIRCLEQ_REMOVE(head, elm, field) do { \ + QUEUEDEBUG_CIRCLEQ_HEAD((head), field) \ + QUEUEDEBUG_CIRCLEQ_ELM((head), (elm), field) \ + if ((elm)->field.cqe_next == CIRCLEQ_ENDC(head)) \ + (head)->cqh_last = (elm)->field.cqe_prev; \ + else \ + (elm)->field.cqe_next->field.cqe_prev = \ + (elm)->field.cqe_prev; \ + if ((elm)->field.cqe_prev == CIRCLEQ_ENDC(head)) \ + (head)->cqh_first = (elm)->field.cqe_next; \ + else \ + (elm)->field.cqe_prev->field.cqe_next = \ + (elm)->field.cqe_next; \ + QUEUEDEBUG_CIRCLEQ_POSTREMOVE((elm), field) \ +} while (/*CONSTCOND*/0) + +#define CIRCLEQ_FOREACH(var, head, field) \ + for ((var) = ((head)->cqh_first); \ + (var) != CIRCLEQ_ENDC(head); \ + (var) = ((var)->field.cqe_next)) + +#define CIRCLEQ_FOREACH_REVERSE(var, head, field) \ + for ((var) = ((head)->cqh_last); \ + (var) != CIRCLEQ_ENDC(head); \ + (var) = ((var)->field.cqe_prev)) + +/* + * Circular queue access methods. + */ +#define CIRCLEQ_FIRST(head) ((head)->cqh_first) +#define CIRCLEQ_LAST(head) ((head)->cqh_last) +/* For comparisons */ +#define CIRCLEQ_ENDC(head) (__launder_type(head)) +/* For assignments */ +#define CIRCLEQ_END(head) ((void *)(head)) +#define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe_next) +#define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe_prev) +#define CIRCLEQ_EMPTY(head) \ + (CIRCLEQ_FIRST(head) == CIRCLEQ_ENDC(head)) + +#define CIRCLEQ_LOOP_NEXT(head, elm, field) \ + (((elm)->field.cqe_next == CIRCLEQ_ENDC(head)) \ + ? ((head)->cqh_first) \ + : (elm->field.cqe_next)) +#define CIRCLEQ_LOOP_PREV(head, elm, field) \ + (((elm)->field.cqe_prev == CIRCLEQ_ENDC(head)) \ + ? ((head)->cqh_last) \ + : (elm->field.cqe_prev)) +#endif /* !_KERNEL */ + +#endif /* !_SYS_QUEUE_H_ */ diff --git a/core/musl/files/tree.h b/core/musl/files/tree.h new file mode 100755 index 00000000..eaea56aa --- /dev/null +++ b/core/musl/files/tree.h @@ -0,0 +1,761 @@ +/* $NetBSD: tree.h,v 1.20 2013/09/14 13:20:45 joerg Exp $ */ +/* $OpenBSD: tree.h,v 1.13 2011/07/09 00:19:45 pirofti Exp $ */ +/* + * Copyright 2002 Niels Provos <provos@citi.umich.edu> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _SYS_TREE_H_ +#define _SYS_TREE_H_ + +/* + * This file defines data structures for different types of trees: + * splay trees and red-black trees. + * + * A splay tree is a self-organizing data structure. Every operation + * on the tree causes a splay to happen. The splay moves the requested + * node to the root of the tree and partly rebalances it. + * + * This has the benefit that request locality causes faster lookups as + * the requested nodes move to the top of the tree. On the other hand, + * every lookup causes memory writes. + * + * The Balance Theorem bounds the total access time for m operations + * and n inserts on an initially empty tree as O((m + n)lg n). The + * amortized cost for a sequence of m accesses to a splay tree is O(lg n); + * + * A red-black tree is a binary search tree with the node color as an + * extra attribute. It fulfills a set of conditions: + * - every search path from the root to a leaf consists of the + * same number of black nodes, + * - each red node (except for the root) has a black parent, + * - each leaf node is black. + * + * Every operation on a red-black tree is bounded as O(lg n). + * The maximum height of a red-black tree is 2lg (n+1). + */ + +#define SPLAY_HEAD(name, type) \ +struct name { \ + struct type *sph_root; /* root of the tree */ \ +} + +#define SPLAY_INITIALIZER(root) \ + { NULL } + +#define SPLAY_INIT(root) do { \ + (root)->sph_root = NULL; \ +} while (/*CONSTCOND*/ 0) + +#define SPLAY_ENTRY(type) \ +struct { \ + struct type *spe_left; /* left element */ \ + struct type *spe_right; /* right element */ \ +} + +#define SPLAY_LEFT(elm, field) (elm)->field.spe_left +#define SPLAY_RIGHT(elm, field) (elm)->field.spe_right +#define SPLAY_ROOT(head) (head)->sph_root +#define SPLAY_EMPTY(head) (SPLAY_ROOT(head) == NULL) + +/* SPLAY_ROTATE_{LEFT,RIGHT} expect that tmp hold SPLAY_{RIGHT,LEFT} */ +#define SPLAY_ROTATE_RIGHT(head, tmp, field) do { \ + SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(tmp, field); \ + SPLAY_RIGHT(tmp, field) = (head)->sph_root; \ + (head)->sph_root = tmp; \ +} while (/*CONSTCOND*/ 0) + +#define SPLAY_ROTATE_LEFT(head, tmp, field) do { \ + SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(tmp, field); \ + SPLAY_LEFT(tmp, field) = (head)->sph_root; \ + (head)->sph_root = tmp; \ +} while (/*CONSTCOND*/ 0) + +#define SPLAY_LINKLEFT(head, tmp, field) do { \ + SPLAY_LEFT(tmp, field) = (head)->sph_root; \ + tmp = (head)->sph_root; \ + (head)->sph_root = SPLAY_LEFT((head)->sph_root, field); \ +} while (/*CONSTCOND*/ 0) + +#define SPLAY_LINKRIGHT(head, tmp, field) do { \ + SPLAY_RIGHT(tmp, field) = (head)->sph_root; \ + tmp = (head)->sph_root; \ + (head)->sph_root = SPLAY_RIGHT((head)->sph_root, field); \ +} while (/*CONSTCOND*/ 0) + +#define SPLAY_ASSEMBLE(head, node, left, right, field) do { \ + SPLAY_RIGHT(left, field) = SPLAY_LEFT((head)->sph_root, field); \ + SPLAY_LEFT(right, field) = SPLAY_RIGHT((head)->sph_root, field);\ + SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(node, field); \ + SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(node, field); \ +} while (/*CONSTCOND*/ 0) + +/* Generates prototypes and inline functions */ + +#define SPLAY_PROTOTYPE(name, type, field, cmp) \ +void name##_SPLAY(struct name *, struct type *); \ +void name##_SPLAY_MINMAX(struct name *, int); \ +struct type *name##_SPLAY_INSERT(struct name *, struct type *); \ +struct type *name##_SPLAY_REMOVE(struct name *, struct type *); \ + \ +/* Finds the node with the same key as elm */ \ +static __inline struct type * \ +name##_SPLAY_FIND(struct name *head, struct type *elm) \ +{ \ + if (SPLAY_EMPTY(head)) \ + return(NULL); \ + name##_SPLAY(head, elm); \ + if ((cmp)(elm, (head)->sph_root) == 0) \ + return (head->sph_root); \ + return (NULL); \ +} \ + \ +static __inline __unused struct type * \ +name##_SPLAY_NEXT(struct name *head, struct type *elm) \ +{ \ + name##_SPLAY(head, elm); \ + if (SPLAY_RIGHT(elm, field) != NULL) { \ + elm = SPLAY_RIGHT(elm, field); \ + while (SPLAY_LEFT(elm, field) != NULL) { \ + elm = SPLAY_LEFT(elm, field); \ + } \ + } else \ + elm = NULL; \ + return (elm); \ +} \ + \ +static __unused __inline struct type * \ +name##_SPLAY_MIN_MAX(struct name *head, int val) \ +{ \ + name##_SPLAY_MINMAX(head, val); \ + return (SPLAY_ROOT(head)); \ +} + +/* Main splay operation. + * Moves node close to the key of elm to top + */ +#define SPLAY_GENERATE(name, type, field, cmp) \ +struct type * \ +name##_SPLAY_INSERT(struct name *head, struct type *elm) \ +{ \ + if (SPLAY_EMPTY(head)) { \ + SPLAY_LEFT(elm, field) = SPLAY_RIGHT(elm, field) = NULL; \ + } else { \ + int __comp; \ + name##_SPLAY(head, elm); \ + __comp = (cmp)(elm, (head)->sph_root); \ + if(__comp < 0) { \ + SPLAY_LEFT(elm, field) = SPLAY_LEFT((head)->sph_root, field);\ + SPLAY_RIGHT(elm, field) = (head)->sph_root; \ + SPLAY_LEFT((head)->sph_root, field) = NULL; \ + } else if (__comp > 0) { \ + SPLAY_RIGHT(elm, field) = SPLAY_RIGHT((head)->sph_root, field);\ + SPLAY_LEFT(elm, field) = (head)->sph_root; \ + SPLAY_RIGHT((head)->sph_root, field) = NULL; \ + } else \ + return ((head)->sph_root); \ + } \ + (head)->sph_root = (elm); \ + return (NULL); \ +} \ + \ +struct type * \ +name##_SPLAY_REMOVE(struct name *head, struct type *elm) \ +{ \ + struct type *__tmp; \ + if (SPLAY_EMPTY(head)) \ + return (NULL); \ + name##_SPLAY(head, elm); \ + if ((cmp)(elm, (head)->sph_root) == 0) { \ + if (SPLAY_LEFT((head)->sph_root, field) == NULL) { \ + (head)->sph_root = SPLAY_RIGHT((head)->sph_root, field);\ + } else { \ + __tmp = SPLAY_RIGHT((head)->sph_root, field); \ + (head)->sph_root = SPLAY_LEFT((head)->sph_root, field);\ + name##_SPLAY(head, elm); \ + SPLAY_RIGHT((head)->sph_root, field) = __tmp; \ + } \ + return (elm); \ + } \ + return (NULL); \ +} \ + \ +void \ +name##_SPLAY(struct name *head, struct type *elm) \ +{ \ + struct type __node, *__left, *__right, *__tmp; \ + int __comp; \ +\ + SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL;\ + __left = __right = &__node; \ +\ + while ((__comp = (cmp)(elm, (head)->sph_root)) != 0) { \ + if (__comp < 0) { \ + __tmp = SPLAY_LEFT((head)->sph_root, field); \ + if (__tmp == NULL) \ + break; \ + if ((cmp)(elm, __tmp) < 0){ \ + SPLAY_ROTATE_RIGHT(head, __tmp, field); \ + if (SPLAY_LEFT((head)->sph_root, field) == NULL)\ + break; \ + } \ + SPLAY_LINKLEFT(head, __right, field); \ + } else if (__comp > 0) { \ + __tmp = SPLAY_RIGHT((head)->sph_root, field); \ + if (__tmp == NULL) \ + break; \ + if ((cmp)(elm, __tmp) > 0){ \ + SPLAY_ROTATE_LEFT(head, __tmp, field); \ + if (SPLAY_RIGHT((head)->sph_root, field) == NULL)\ + break; \ + } \ + SPLAY_LINKRIGHT(head, __left, field); \ + } \ + } \ + SPLAY_ASSEMBLE(head, &__node, __left, __right, field); \ +} \ + \ +/* Splay with either the minimum or the maximum element \ + * Used to find minimum or maximum element in tree. \ + */ \ +void name##_SPLAY_MINMAX(struct name *head, int __comp) \ +{ \ + struct type __node, *__left, *__right, *__tmp; \ +\ + SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL;\ + __left = __right = &__node; \ +\ + while (1) { \ + if (__comp < 0) { \ + __tmp = SPLAY_LEFT((head)->sph_root, field); \ + if (__tmp == NULL) \ + break; \ + if (__comp < 0){ \ + SPLAY_ROTATE_RIGHT(head, __tmp, field); \ + if (SPLAY_LEFT((head)->sph_root, field) == NULL)\ + break; \ + } \ + SPLAY_LINKLEFT(head, __right, field); \ + } else if (__comp > 0) { \ + __tmp = SPLAY_RIGHT((head)->sph_root, field); \ + if (__tmp == NULL) \ + break; \ + if (__comp > 0) { \ + SPLAY_ROTATE_LEFT(head, __tmp, field); \ + if (SPLAY_RIGHT((head)->sph_root, field) == NULL)\ + break; \ + } \ + SPLAY_LINKRIGHT(head, __left, field); \ + } \ + } \ + SPLAY_ASSEMBLE(head, &__node, __left, __right, field); \ +} + +#define SPLAY_NEGINF -1 +#define SPLAY_INF 1 + +#define SPLAY_INSERT(name, x, y) name##_SPLAY_INSERT(x, y) +#define SPLAY_REMOVE(name, x, y) name##_SPLAY_REMOVE(x, y) +#define SPLAY_FIND(name, x, y) name##_SPLAY_FIND(x, y) +#define SPLAY_NEXT(name, x, y) name##_SPLAY_NEXT(x, y) +#define SPLAY_MIN(name, x) (SPLAY_EMPTY(x) ? NULL \ + : name##_SPLAY_MIN_MAX(x, SPLAY_NEGINF)) +#define SPLAY_MAX(name, x) (SPLAY_EMPTY(x) ? NULL \ + : name##_SPLAY_MIN_MAX(x, SPLAY_INF)) + +#define SPLAY_FOREACH(x, name, head) \ + for ((x) = SPLAY_MIN(name, head); \ + (x) != NULL; \ + (x) = SPLAY_NEXT(name, head, x)) + +/* Macros that define a red-black tree */ +#define RB_HEAD(name, type) \ +struct name { \ + struct type *rbh_root; /* root of the tree */ \ +} + +#define RB_INITIALIZER(root) \ + { NULL } + +#define RB_INIT(root) do { \ + (root)->rbh_root = NULL; \ +} while (/*CONSTCOND*/ 0) + +#define RB_BLACK 0 +#define RB_RED 1 +#define RB_ENTRY(type) \ +struct { \ + struct type *rbe_left; /* left element */ \ + struct type *rbe_right; /* right element */ \ + struct type *rbe_parent; /* parent element */ \ + int rbe_color; /* node color */ \ +} + +#define RB_LEFT(elm, field) (elm)->field.rbe_left +#define RB_RIGHT(elm, field) (elm)->field.rbe_right +#define RB_PARENT(elm, field) (elm)->field.rbe_parent +#define RB_COLOR(elm, field) (elm)->field.rbe_color +#define RB_ROOT(head) (head)->rbh_root +#define RB_EMPTY(head) (RB_ROOT(head) == NULL) + +#define RB_SET(elm, parent, field) do { \ + RB_PARENT(elm, field) = parent; \ + RB_LEFT(elm, field) = RB_RIGHT(elm, field) = NULL; \ + RB_COLOR(elm, field) = RB_RED; \ +} while (/*CONSTCOND*/ 0) + +#define RB_SET_BLACKRED(black, red, field) do { \ + RB_COLOR(black, field) = RB_BLACK; \ + RB_COLOR(red, field) = RB_RED; \ +} while (/*CONSTCOND*/ 0) + +#ifndef RB_AUGMENT +#define RB_AUGMENT(x) do {} while (/*CONSTCOND*/ 0) +#endif + +#define RB_ROTATE_LEFT(head, elm, tmp, field) do { \ + (tmp) = RB_RIGHT(elm, field); \ + if ((RB_RIGHT(elm, field) = RB_LEFT(tmp, field)) != NULL) { \ + RB_PARENT(RB_LEFT(tmp, field), field) = (elm); \ + } \ + RB_AUGMENT(elm); \ + if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != NULL) { \ + if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \ + RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \ + else \ + RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \ + } else \ + (head)->rbh_root = (tmp); \ + RB_LEFT(tmp, field) = (elm); \ + RB_PARENT(elm, field) = (tmp); \ + RB_AUGMENT(tmp); \ + if ((RB_PARENT(tmp, field))) \ + RB_AUGMENT(RB_PARENT(tmp, field)); \ +} while (/*CONSTCOND*/ 0) + +#define RB_ROTATE_RIGHT(head, elm, tmp, field) do { \ + (tmp) = RB_LEFT(elm, field); \ + if ((RB_LEFT(elm, field) = RB_RIGHT(tmp, field)) != NULL) { \ + RB_PARENT(RB_RIGHT(tmp, field), field) = (elm); \ + } \ + RB_AUGMENT(elm); \ + if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != NULL) { \ + if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \ + RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \ + else \ + RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \ + } else \ + (head)->rbh_root = (tmp); \ + RB_RIGHT(tmp, field) = (elm); \ + RB_PARENT(elm, field) = (tmp); \ + RB_AUGMENT(tmp); \ + if ((RB_PARENT(tmp, field))) \ + RB_AUGMENT(RB_PARENT(tmp, field)); \ +} while (/*CONSTCOND*/ 0) + +/* Generates prototypes and inline functions */ +#define RB_PROTOTYPE(name, type, field, cmp) \ + RB_PROTOTYPE_INTERNAL(name, type, field, cmp,) +#define RB_PROTOTYPE_STATIC(name, type, field, cmp) \ + RB_PROTOTYPE_INTERNAL(name, type, field, cmp, __unused static) +#define RB_PROTOTYPE_INTERNAL(name, type, field, cmp, attr) \ +attr void name##_RB_INSERT_COLOR(struct name *, struct type *); \ +attr void name##_RB_REMOVE_COLOR(struct name *, struct type *, struct type *);\ +attr struct type *name##_RB_REMOVE(struct name *, struct type *); \ +attr struct type *name##_RB_INSERT(struct name *, struct type *); \ +attr struct type *name##_RB_FIND(struct name *, struct type *); \ +attr struct type *name##_RB_NFIND(struct name *, struct type *); \ +attr struct type *name##_RB_NEXT(struct type *); \ +attr struct type *name##_RB_PREV(struct type *); \ +attr struct type *name##_RB_MINMAX(struct name *, int); \ + \ + +/* Main rb operation. + * Moves node close to the key of elm to top + */ +#define RB_GENERATE(name, type, field, cmp) \ + RB_GENERATE_INTERNAL(name, type, field, cmp,) +#define RB_GENERATE_STATIC(name, type, field, cmp) \ + RB_GENERATE_INTERNAL(name, type, field, cmp, __unused static) +#define RB_GENERATE_INTERNAL(name, type, field, cmp, attr) \ +attr void \ +name##_RB_INSERT_COLOR(struct name *head, struct type *elm) \ +{ \ + struct type *parent, *gparent, *tmp; \ + while ((parent = RB_PARENT(elm, field)) != NULL && \ + RB_COLOR(parent, field) == RB_RED) { \ + gparent = RB_PARENT(parent, field); \ + if (parent == RB_LEFT(gparent, field)) { \ + tmp = RB_RIGHT(gparent, field); \ + if (tmp && RB_COLOR(tmp, field) == RB_RED) { \ + RB_COLOR(tmp, field) = RB_BLACK; \ + RB_SET_BLACKRED(parent, gparent, field);\ + elm = gparent; \ + continue; \ + } \ + if (RB_RIGHT(parent, field) == elm) { \ + RB_ROTATE_LEFT(head, parent, tmp, field);\ + tmp = parent; \ + parent = elm; \ + elm = tmp; \ + } \ + RB_SET_BLACKRED(parent, gparent, field); \ + RB_ROTATE_RIGHT(head, gparent, tmp, field); \ + } else { \ + tmp = RB_LEFT(gparent, field); \ + if (tmp && RB_COLOR(tmp, field) == RB_RED) { \ + RB_COLOR(tmp, field) = RB_BLACK; \ + RB_SET_BLACKRED(parent, gparent, field);\ + elm = gparent; \ + continue; \ + } \ + if (RB_LEFT(parent, field) == elm) { \ + RB_ROTATE_RIGHT(head, parent, tmp, field);\ + tmp = parent; \ + parent = elm; \ + elm = tmp; \ + } \ + RB_SET_BLACKRED(parent, gparent, field); \ + RB_ROTATE_LEFT(head, gparent, tmp, field); \ + } \ + } \ + RB_COLOR(head->rbh_root, field) = RB_BLACK; \ +} \ + \ +attr void \ +name##_RB_REMOVE_COLOR(struct name *head, struct type *parent, struct type *elm) \ +{ \ + struct type *tmp; \ + while ((elm == NULL || RB_COLOR(elm, field) == RB_BLACK) && \ + elm != RB_ROOT(head)) { \ + if (RB_LEFT(parent, field) == elm) { \ + tmp = RB_RIGHT(parent, field); \ + if (RB_COLOR(tmp, field) == RB_RED) { \ + RB_SET_BLACKRED(tmp, parent, field); \ + RB_ROTATE_LEFT(head, parent, tmp, field);\ + tmp = RB_RIGHT(parent, field); \ + } \ + if ((RB_LEFT(tmp, field) == NULL || \ + RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) &&\ + (RB_RIGHT(tmp, field) == NULL || \ + RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) {\ + RB_COLOR(tmp, field) = RB_RED; \ + elm = parent; \ + parent = RB_PARENT(elm, field); \ + } else { \ + if (RB_RIGHT(tmp, field) == NULL || \ + RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK) {\ + struct type *oleft; \ + if ((oleft = RB_LEFT(tmp, field)) \ + != NULL) \ + RB_COLOR(oleft, field) = RB_BLACK;\ + RB_COLOR(tmp, field) = RB_RED; \ + RB_ROTATE_RIGHT(head, tmp, oleft, field);\ + tmp = RB_RIGHT(parent, field); \ + } \ + RB_COLOR(tmp, field) = RB_COLOR(parent, field);\ + RB_COLOR(parent, field) = RB_BLACK; \ + if (RB_RIGHT(tmp, field)) \ + RB_COLOR(RB_RIGHT(tmp, field), field) = RB_BLACK;\ + RB_ROTATE_LEFT(head, parent, tmp, field);\ + elm = RB_ROOT(head); \ + break; \ + } \ + } else { \ + tmp = RB_LEFT(parent, field); \ + if (RB_COLOR(tmp, field) == RB_RED) { \ + RB_SET_BLACKRED(tmp, parent, field); \ + RB_ROTATE_RIGHT(head, parent, tmp, field);\ + tmp = RB_LEFT(parent, field); \ + } \ + if ((RB_LEFT(tmp, field) == NULL || \ + RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) &&\ + (RB_RIGHT(tmp, field) == NULL || \ + RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) {\ + RB_COLOR(tmp, field) = RB_RED; \ + elm = parent; \ + parent = RB_PARENT(elm, field); \ + } else { \ + if (RB_LEFT(tmp, field) == NULL || \ + RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) {\ + struct type *oright; \ + if ((oright = RB_RIGHT(tmp, field)) \ + != NULL) \ + RB_COLOR(oright, field) = RB_BLACK;\ + RB_COLOR(tmp, field) = RB_RED; \ + RB_ROTATE_LEFT(head, tmp, oright, field);\ + tmp = RB_LEFT(parent, field); \ + } \ + RB_COLOR(tmp, field) = RB_COLOR(parent, field);\ + RB_COLOR(parent, field) = RB_BLACK; \ + if (RB_LEFT(tmp, field)) \ + RB_COLOR(RB_LEFT(tmp, field), field) = RB_BLACK;\ + RB_ROTATE_RIGHT(head, parent, tmp, field);\ + elm = RB_ROOT(head); \ + break; \ + } \ + } \ + } \ + if (elm) \ + RB_COLOR(elm, field) = RB_BLACK; \ +} \ + \ +attr struct type * \ +name##_RB_REMOVE(struct name *head, struct type *elm) \ +{ \ + struct type *child, *parent, *old = elm; \ + int color; \ + if (RB_LEFT(elm, field) == NULL) \ + child = RB_RIGHT(elm, field); \ + else if (RB_RIGHT(elm, field) == NULL) \ + child = RB_LEFT(elm, field); \ + else { \ + struct type *left; \ + elm = RB_RIGHT(elm, field); \ + while ((left = RB_LEFT(elm, field)) != NULL) \ + elm = left; \ + child = RB_RIGHT(elm, field); \ + parent = RB_PARENT(elm, field); \ + color = RB_COLOR(elm, field); \ + if (child) \ + RB_PARENT(child, field) = parent; \ + if (parent) { \ + if (RB_LEFT(parent, field) == elm) \ + RB_LEFT(parent, field) = child; \ + else \ + RB_RIGHT(parent, field) = child; \ + RB_AUGMENT(parent); \ + } else \ + RB_ROOT(head) = child; \ + if (RB_PARENT(elm, field) == old) \ + parent = elm; \ + (elm)->field = (old)->field; \ + if (RB_PARENT(old, field)) { \ + if (RB_LEFT(RB_PARENT(old, field), field) == old)\ + RB_LEFT(RB_PARENT(old, field), field) = elm;\ + else \ + RB_RIGHT(RB_PARENT(old, field), field) = elm;\ + RB_AUGMENT(RB_PARENT(old, field)); \ + } else \ + RB_ROOT(head) = elm; \ + RB_PARENT(RB_LEFT(old, field), field) = elm; \ + if (RB_RIGHT(old, field)) \ + RB_PARENT(RB_RIGHT(old, field), field) = elm; \ + if (parent) { \ + left = parent; \ + do { \ + RB_AUGMENT(left); \ + } while ((left = RB_PARENT(left, field)) != NULL); \ + } \ + goto color; \ + } \ + parent = RB_PARENT(elm, field); \ + color = RB_COLOR(elm, field); \ + if (child) \ + RB_PARENT(child, field) = parent; \ + if (parent) { \ + if (RB_LEFT(parent, field) == elm) \ + RB_LEFT(parent, field) = child; \ + else \ + RB_RIGHT(parent, field) = child; \ + RB_AUGMENT(parent); \ + } else \ + RB_ROOT(head) = child; \ +color: \ + if (color == RB_BLACK) \ + name##_RB_REMOVE_COLOR(head, parent, child); \ + return (old); \ +} \ + \ +/* Inserts a node into the RB tree */ \ +attr struct type * \ +name##_RB_INSERT(struct name *head, struct type *elm) \ +{ \ + struct type *tmp; \ + struct type *parent = NULL; \ + int comp = 0; \ + tmp = RB_ROOT(head); \ + while (tmp) { \ + parent = tmp; \ + comp = (cmp)(elm, parent); \ + if (comp < 0) \ + tmp = RB_LEFT(tmp, field); \ + else if (comp > 0) \ + tmp = RB_RIGHT(tmp, field); \ + else \ + return (tmp); \ + } \ + RB_SET(elm, parent, field); \ + if (parent != NULL) { \ + if (comp < 0) \ + RB_LEFT(parent, field) = elm; \ + else \ + RB_RIGHT(parent, field) = elm; \ + RB_AUGMENT(parent); \ + } else \ + RB_ROOT(head) = elm; \ + name##_RB_INSERT_COLOR(head, elm); \ + return (NULL); \ +} \ + \ +/* Finds the node with the same key as elm */ \ +attr struct type * \ +name##_RB_FIND(struct name *head, struct type *elm) \ +{ \ + struct type *tmp = RB_ROOT(head); \ + int comp; \ + while (tmp) { \ + comp = cmp(elm, tmp); \ + if (comp < 0) \ + tmp = RB_LEFT(tmp, field); \ + else if (comp > 0) \ + tmp = RB_RIGHT(tmp, field); \ + else \ + return (tmp); \ + } \ + return (NULL); \ +} \ + \ +/* Finds the first node greater than or equal to the search key */ \ +attr struct type * \ +name##_RB_NFIND(struct name *head, struct type *elm) \ +{ \ + struct type *tmp = RB_ROOT(head); \ + struct type *res = NULL; \ + int comp; \ + while (tmp) { \ + comp = cmp(elm, tmp); \ + if (comp < 0) { \ + res = tmp; \ + tmp = RB_LEFT(tmp, field); \ + } \ + else if (comp > 0) \ + tmp = RB_RIGHT(tmp, field); \ + else \ + return (tmp); \ + } \ + return (res); \ +} \ + \ +/* ARGSUSED */ \ +attr struct type * \ +name##_RB_NEXT(struct type *elm) \ +{ \ + if (RB_RIGHT(elm, field)) { \ + elm = RB_RIGHT(elm, field); \ + while (RB_LEFT(elm, field)) \ + elm = RB_LEFT(elm, field); \ + } else { \ + if (RB_PARENT(elm, field) && \ + (elm == RB_LEFT(RB_PARENT(elm, field), field))) \ + elm = RB_PARENT(elm, field); \ + else { \ + while (RB_PARENT(elm, field) && \ + (elm == RB_RIGHT(RB_PARENT(elm, field), field)))\ + elm = RB_PARENT(elm, field); \ + elm = RB_PARENT(elm, field); \ + } \ + } \ + return (elm); \ +} \ + \ +/* ARGSUSED */ \ +attr struct type * \ +name##_RB_PREV(struct type *elm) \ +{ \ + if (RB_LEFT(elm, field)) { \ + elm = RB_LEFT(elm, field); \ + while (RB_RIGHT(elm, field)) \ + elm = RB_RIGHT(elm, field); \ + } else { \ + if (RB_PARENT(elm, field) && \ + (elm == RB_RIGHT(RB_PARENT(elm, field), field))) \ + elm = RB_PARENT(elm, field); \ + else { \ + while (RB_PARENT(elm, field) && \ + (elm == RB_LEFT(RB_PARENT(elm, field), field)))\ + elm = RB_PARENT(elm, field); \ + elm = RB_PARENT(elm, field); \ + } \ + } \ + return (elm); \ +} \ + \ +attr struct type * \ +name##_RB_MINMAX(struct name *head, int val) \ +{ \ + struct type *tmp = RB_ROOT(head); \ + struct type *parent = NULL; \ + while (tmp) { \ + parent = tmp; \ + if (val < 0) \ + tmp = RB_LEFT(tmp, field); \ + else \ + tmp = RB_RIGHT(tmp, field); \ + } \ + return (parent); \ +} + +#define RB_NEGINF -1 +#define RB_INF 1 + +#define RB_INSERT(name, x, y) name##_RB_INSERT(x, y) +#define RB_REMOVE(name, x, y) name##_RB_REMOVE(x, y) +#define RB_FIND(name, x, y) name##_RB_FIND(x, y) +#define RB_NFIND(name, x, y) name##_RB_NFIND(x, y) +#define RB_NEXT(name, x, y) name##_RB_NEXT(y) +#define RB_PREV(name, x, y) name##_RB_PREV(y) +#define RB_MIN(name, x) name##_RB_MINMAX(x, RB_NEGINF) +#define RB_MAX(name, x) name##_RB_MINMAX(x, RB_INF) + +#define RB_FOREACH(x, name, head) \ + for ((x) = RB_MIN(name, head); \ + (x) != NULL; \ + (x) = name##_RB_NEXT(x)) + +#define RB_FOREACH_FROM(x, name, y) \ + for ((x) = (y); \ + ((x) != NULL) && ((y) = name##_RB_NEXT(x), (x) != NULL); \ + (x) = (y)) + +#define RB_FOREACH_SAFE(x, name, head, y) \ + for ((x) = RB_MIN(name, head); \ + ((x) != NULL) && ((y) = name##_RB_NEXT(x), (x) != NULL); \ + (x) = (y)) + +#define RB_FOREACH_REVERSE(x, name, head) \ + for ((x) = RB_MAX(name, head); \ + (x) != NULL; \ + (x) = name##_RB_PREV(x)) + +#define RB_FOREACH_REVERSE_FROM(x, name, y) \ + for ((x) = (y); \ + ((x) != NULL) && ((y) = name##_RB_PREV(x), (x) != NULL); \ + (x) = (y)) + +#define RB_FOREACH_REVERSE_SAFE(x, name, head, y) \ + for ((x) = RB_MAX(name, head); \ + ((x) != NULL) && ((y) = name##_RB_PREV(x), (x) != NULL); \ + (x) = (y)) + +#endif /* _SYS_TREE_H_ */ diff --git a/core/musl/sources b/core/musl/sources new file mode 100644 index 00000000..c6e411f7 --- /dev/null +++ b/core/musl/sources @@ -0,0 +1,5 @@ +https://www.musl-libc.org/releases/musl-1.1.24.tar.gz +files/cdefs.h +files/queue.h +files/tree.h +files/getconf.c diff --git a/core/musl/version b/core/musl/version new file mode 100644 index 00000000..11d0eb49 --- /dev/null +++ b/core/musl/version @@ -0,0 +1 @@ +1.1.24 1 diff --git a/core/perl/build b/core/perl/build new file mode 100755 index 00000000..a81dc976 --- /dev/null +++ b/core/perl/build @@ -0,0 +1,43 @@ +#!/bin/sh -e + +export BUILD_ZLIB=0 +export BUILD_BZIP2=0 +export LDFLAGS="$LDFLAGS -pthread" +export CFLAGS="$CFLAGS -DNO_POSIX_2008_LOCALE -D_GNU_SOURCE" + +./Configure \ + -des \ + -Dprefix=/usr \ + -Dvendorprefix=/usr \ + -Dusevendorprefix \ + -Duseshrplib \ + -Dusesoname \ + -Dusethreads \ + -Dinc_version_list=none \ + -Dd_sockaddr_in6=define \ + -Dcccdlflags=-fPIC \ + -Dccflags="$CFLAGS" \ + -Dlddlflags="-shared $LDFLAGS" \ + -Dldflags="$LDFLAGS" \ + -Doptimize="-Wall $CFLAGS" \ + -Dcc="${CC:-gcc}" \ + -Dar="${AR:-ar}" \ + -Dnm="${NM:-nm}" \ + -Dranlib="${RANLIB:-ranlib}" \ + -Dperl_static_inline="static __inline__" \ + -Dd_static_inline + +make +make DESTDIR="$1" install + +# Remove all unneeded files. +find "$1" -name \*.pod -delete +find "$1" -name .packlist -delete +find "$1" -name README\* -delete +find "$1" -name TODO\* -delete +find "$1" -name Change\* -delete +find "$1" -name \*.bs -delete +find "$1" -name \*.0 -type f -delete + +# Fix permissions. +find "$1/usr/lib" -type f -exec chmod 644 {} \; diff --git a/core/perl/checksums b/core/perl/checksums new file mode 100644 index 00000000..acdd60ac --- /dev/null +++ b/core/perl/checksums @@ -0,0 +1 @@ +41f299900436a32e10c4804a9210dfc994209e143287fc97339b6bf086315692 v5.30.1.tar.gz diff --git a/core/perl/depends b/core/perl/depends new file mode 100644 index 00000000..4565337a --- /dev/null +++ b/core/perl/depends @@ -0,0 +1,2 @@ +bzip2 +zlib diff --git a/core/perl/sources b/core/perl/sources new file mode 100644 index 00000000..29d148ed --- /dev/null +++ b/core/perl/sources @@ -0,0 +1 @@ +https://github.com/Perl/perl5/archive/v5.30.1.tar.gz diff --git a/core/perl/version b/core/perl/version new file mode 100644 index 00000000..fd591563 --- /dev/null +++ b/core/perl/version @@ -0,0 +1 @@ +5.30.1 1 diff --git a/core/pkgconf/build b/core/pkgconf/build new file mode 100755 index 00000000..503d3a77 --- /dev/null +++ b/core/pkgconf/build @@ -0,0 +1,10 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --sysconfdir=/etc + +make +make DESTDIR="$1" install + +ln -s pkgconf "$1/usr/bin/pkg-config" diff --git a/core/pkgconf/checksums b/core/pkgconf/checksums new file mode 100644 index 00000000..35720784 --- /dev/null +++ b/core/pkgconf/checksums @@ -0,0 +1 @@ +61f0b31b0d5ea0e862b454a80c170f57bad47879c0c42bd8de89200ff62ea210 pkgconf-1.6.3.tar.xz diff --git a/core/pkgconf/sources b/core/pkgconf/sources new file mode 100644 index 00000000..201af1ec --- /dev/null +++ b/core/pkgconf/sources @@ -0,0 +1 @@ +https://distfiles.dereferenced.org/pkgconf/pkgconf-1.6.3.tar.xz diff --git a/core/pkgconf/version b/core/pkgconf/version new file mode 100644 index 00000000..08dc2884 --- /dev/null +++ b/core/pkgconf/version @@ -0,0 +1 @@ +1.6.3 2 diff --git a/core/rsync/build b/core/rsync/build new file mode 100755 index 00000000..6a0ede69 --- /dev/null +++ b/core/rsync/build @@ -0,0 +1,10 @@ +#!/bin/sh -e + +export CFLAGS="-static $CFLAGS" + +./configure \ + --prefix=/usr \ + --with-included-popt + +make +make DESTDIR="$1" install diff --git a/core/rsync/checksums b/core/rsync/checksums new file mode 100644 index 00000000..fb1e3676 --- /dev/null +++ b/core/rsync/checksums @@ -0,0 +1 @@ +55cc554efec5fdaad70de921cd5a5eeb6c29a95524c715f3bbf849235b0800c0 rsync-3.1.3.tar.gz diff --git a/core/rsync/depends b/core/rsync/depends new file mode 100644 index 00000000..17a6d43d --- /dev/null +++ b/core/rsync/depends @@ -0,0 +1 @@ +zlib make diff --git a/core/rsync/sources b/core/rsync/sources new file mode 100644 index 00000000..61a21f38 --- /dev/null +++ b/core/rsync/sources @@ -0,0 +1 @@ +https://download.samba.org/pub/rsync/src/rsync-3.1.3.tar.gz diff --git a/core/rsync/version b/core/rsync/version new file mode 100644 index 00000000..b803f4d1 --- /dev/null +++ b/core/rsync/version @@ -0,0 +1 @@ +3.1.3 2 diff --git a/core/wpa_supplicant/build b/core/wpa_supplicant/build new file mode 100755 index 00000000..35e9878c --- /dev/null +++ b/core/wpa_supplicant/build @@ -0,0 +1,6 @@ +#!/bin/sh -e + +cd wpa_supplicant + +make LIBDIR=/usr/lib BINDIR=/usr/bin +make LIBDIR=/usr/lib BINDIR=/usr/bin DESTDIR="$1" install diff --git a/core/wpa_supplicant/checksums b/core/wpa_supplicant/checksums new file mode 100644 index 00000000..8be19a91 --- /dev/null +++ b/core/wpa_supplicant/checksums @@ -0,0 +1,2 @@ +fcbdee7b4a64bea8177973299c8c824419c413ec2e3a95db63dd6a5dc3541f17 wpa_supplicant-2.9.tar.gz +6a753cde8110f38580ed8e73a50b344c9249aabcef9f1fc689900e9f0c424640 .config diff --git a/core/wpa_supplicant/depends b/core/wpa_supplicant/depends new file mode 100644 index 00000000..2e0bc712 --- /dev/null +++ b/core/wpa_supplicant/depends @@ -0,0 +1,3 @@ +libnl +libressl +pkgconf make diff --git a/core/wpa_supplicant/files/.config b/core/wpa_supplicant/files/.config new file mode 100644 index 00000000..5851a44f --- /dev/null +++ b/core/wpa_supplicant/files/.config @@ -0,0 +1,550 @@ +# Example wpa_supplicant build time configuration +# +# This file lists the configuration options that are used when building the +# hostapd binary. All lines starting with # are ignored. Configuration option +# lines must be commented out complete, if they are not to be included, i.e., +# just setting VARIABLE=n is not disabling that variable. +# +# This file is included in Makefile, so variables like CFLAGS and LIBS can also +# be modified from here. In most cases, these lines should use += in order not +# to override previous values of the variables. + + +# Uncomment following two lines and fix the paths if you have installed OpenSSL +# or GnuTLS in non-default location +#CFLAGS += -I/usr/local/openssl/include +#LIBS += -L/usr/local/openssl/lib + +# Some Red Hat versions seem to include kerberos header files from OpenSSL, but +# the kerberos files are not in the default include path. Following line can be +# used to fix build issues on such systems (krb5.h not found). +#CFLAGS += -I/usr/include/kerberos + +# Driver interface for generic Linux wireless extensions +# Note: WEXT is deprecated in the current Linux kernel version and no new +# functionality is added to it. nl80211-based interface is the new +# replacement for WEXT and its use allows wpa_supplicant to properly control +# the driver to improve existing functionality like roaming and to support new +# functionality. +CONFIG_DRIVER_WEXT=y + +# Driver interface for Linux drivers using the nl80211 kernel interface +CONFIG_DRIVER_NL80211=y + +# QCA vendor extensions to nl80211 +#CONFIG_DRIVER_NL80211_QCA=y + +# driver_nl80211.c requires libnl. If you are compiling it yourself +# you may need to point hostapd to your version of libnl. +# +#CFLAGS += -I$<path to libnl include files> +#LIBS += -L$<path to libnl library files> + +# Use libnl v2.0 (or 3.0) libraries. +#CONFIG_LIBNL20=y + +# Use libnl 3.2 libraries (if this is selected, CONFIG_LIBNL20 is ignored) +CONFIG_LIBNL32=y + + +# Driver interface for FreeBSD net80211 layer (e.g., Atheros driver) +#CONFIG_DRIVER_BSD=y +#CFLAGS += -I/usr/local/include +#LIBS += -L/usr/local/lib +#LIBS_p += -L/usr/local/lib +#LIBS_c += -L/usr/local/lib + +# Driver interface for Windows NDIS +#CONFIG_DRIVER_NDIS=y +#CFLAGS += -I/usr/include/w32api/ddk +#LIBS += -L/usr/local/lib +# For native build using mingw +#CONFIG_NATIVE_WINDOWS=y +# Additional directories for cross-compilation on Linux host for mingw target +#CFLAGS += -I/opt/mingw/mingw32/include/ddk +#LIBS += -L/opt/mingw/mingw32/lib +#CC=mingw32-gcc +# By default, driver_ndis uses WinPcap for low-level operations. This can be +# replaced with the following option which replaces WinPcap calls with NDISUIO. +# However, this requires that WZC is disabled (net stop wzcsvc) before starting +# wpa_supplicant. +# CONFIG_USE_NDISUIO=y + +# Driver interface for wired Ethernet drivers +CONFIG_DRIVER_WIRED=y + +# Driver interface for the Broadcom RoboSwitch family +#CONFIG_DRIVER_ROBOSWITCH=y + +# Driver interface for no driver (e.g., WPS ER only) +#CONFIG_DRIVER_NONE=y + +# Solaris libraries +#LIBS += -lsocket -ldlpi -lnsl +#LIBS_c += -lsocket + +# Enable IEEE 802.1X Supplicant (automatically included if any EAP method is +# included) +CONFIG_IEEE8021X_EAPOL=y + +# EAP-MD5 +CONFIG_EAP_MD5=y + +# EAP-MSCHAPv2 +CONFIG_EAP_MSCHAPV2=y + +# EAP-TLS +CONFIG_EAP_TLS=y + +# EAL-PEAP +CONFIG_EAP_PEAP=y + +# EAP-TTLS +CONFIG_EAP_TTLS=y + +# EAP-FAST +# Note: If OpenSSL is used as the TLS library, OpenSSL 1.0 or newer is needed +# for EAP-FAST support. Older OpenSSL releases would need to be patched, e.g., +# with openssl-0.9.8x-tls-extensions.patch, to add the needed functions. +#CONFIG_EAP_FAST=y + +# EAP-GTC +CONFIG_EAP_GTC=y + +# EAP-OTP +CONFIG_EAP_OTP=y + +# EAP-SIM (enable CONFIG_PCSC, if EAP-SIM is used) +#CONFIG_EAP_SIM=y + +# EAP-PSK (experimental; this is _not_ needed for WPA-PSK) +#CONFIG_EAP_PSK=y + +# EAP-pwd (secure authentication using only a password) +CONFIG_EAP_PWD=y + +# EAP-PAX +#CONFIG_EAP_PAX=y + +# LEAP +CONFIG_EAP_LEAP=y + +# EAP-AKA (enable CONFIG_PCSC, if EAP-AKA is used) +#CONFIG_EAP_AKA=y + +# EAP-AKA' (enable CONFIG_PCSC, if EAP-AKA' is used). +# This requires CONFIG_EAP_AKA to be enabled, too. +#CONFIG_EAP_AKA_PRIME=y + +# Enable USIM simulator (Milenage) for EAP-AKA +#CONFIG_USIM_SIMULATOR=y + +# EAP-SAKE +#CONFIG_EAP_SAKE=y + +# EAP-GPSK +#CONFIG_EAP_GPSK=y +# Include support for optional SHA256 cipher suite in EAP-GPSK +#CONFIG_EAP_GPSK_SHA256=y + +# EAP-TNC and related Trusted Network Connect support (experimental) +#CONFIG_EAP_TNC=y + +# Wi-Fi Protected Setup (WPS) +CONFIG_WPS=y +# Enable WPS external registrar functionality +#CONFIG_WPS_ER=y +# Disable credentials for an open network by default when acting as a WPS +# registrar. +#CONFIG_WPS_REG_DISABLE_OPEN=y +# Enable WPS support with NFC config method +#CONFIG_WPS_NFC=y + +# EAP-IKEv2 +#CONFIG_EAP_IKEV2=y + +# EAP-EKE +#CONFIG_EAP_EKE=y + +# PKCS#12 (PFX) support (used to read private key and certificate file from +# a file that usually has extension .p12 or .pfx) +CONFIG_PKCS12=y + +# Smartcard support (i.e., private key on a smartcard), e.g., with openssl +# engine. +CONFIG_SMARTCARD=y + +# PC/SC interface for smartcards (USIM, GSM SIM) +# Enable this if EAP-SIM or EAP-AKA is included +#CONFIG_PCSC=y + +# Support HT overrides (disable HT/HT40, mask MCS rates, etc.) +#CONFIG_HT_OVERRIDES=y + +# Support VHT overrides (disable VHT, mask MCS rates, etc.) +#CONFIG_VHT_OVERRIDES=y + +# Development testing +#CONFIG_EAPOL_TEST=y + +# Select control interface backend for external programs, e.g, wpa_cli: +# unix = UNIX domain sockets (default for Linux/*BSD) +# udp = UDP sockets using localhost (127.0.0.1) +# udp6 = UDP IPv6 sockets using localhost (::1) +# named_pipe = Windows Named Pipe (default for Windows) +# udp-remote = UDP sockets with remote access (only for tests systems/purpose) +# udp6-remote = UDP IPv6 sockets with remote access (only for tests purpose) +# y = use default (backwards compatibility) +# If this option is commented out, control interface is not included in the +# build. +CONFIG_CTRL_IFACE=y + +# Include support for GNU Readline and History Libraries in wpa_cli. +# When building a wpa_cli binary for distribution, please note that these +# libraries are licensed under GPL and as such, BSD license may not apply for +# the resulting binary. +#CONFIG_READLINE=n + +# Include internal line edit mode in wpa_cli. This can be used as a replacement +# for GNU Readline to provide limited command line editing and history support. +CONFIG_WPA_CLI_EDIT=y + +# Remove debugging code that is printing out debug message to stdout. +# This can be used to reduce the size of the wpa_supplicant considerably +# if debugging code is not needed. The size reduction can be around 35% +# (e.g., 90 kB). +#CONFIG_NO_STDOUT_DEBUG=y + +# Remove WPA support, e.g., for wired-only IEEE 802.1X supplicant, to save +# 35-50 kB in code size. +#CONFIG_NO_WPA=y + +# Remove IEEE 802.11i/WPA-Personal ASCII passphrase support +# This option can be used to reduce code size by removing support for +# converting ASCII passphrases into PSK. If this functionality is removed, the +# PSK can only be configured as the 64-octet hexstring (e.g., from +# wpa_passphrase). This saves about 0.5 kB in code size. +#CONFIG_NO_WPA_PASSPHRASE=y + +# Disable scan result processing (ap_mode=1) to save code size by about 1 kB. +# This can be used if ap_scan=1 mode is never enabled. +#CONFIG_NO_SCAN_PROCESSING=y + +# Select configuration backend: +# file = text file (e.g., wpa_supplicant.conf; note: the configuration file +# path is given on command line, not here; this option is just used to +# select the backend that allows configuration files to be used) +# winreg = Windows registry (see win_example.reg for an example) +CONFIG_BACKEND=file + +# Remove configuration write functionality (i.e., to allow the configuration +# file to be updated based on runtime configuration changes). The runtime +# configuration can still be changed, the changes are just not going to be +# persistent over restarts. This option can be used to reduce code size by +# about 3.5 kB. +#CONFIG_NO_CONFIG_WRITE=y + +# Remove support for configuration blobs to reduce code size by about 1.5 kB. +#CONFIG_NO_CONFIG_BLOBS=y + +# Select program entry point implementation: +# main = UNIX/POSIX like main() function (default) +# main_winsvc = Windows service (read parameters from registry) +# main_none = Very basic example (development use only) +#CONFIG_MAIN=main + +# Select wrapper for operating system and C library specific functions +# unix = UNIX/POSIX like systems (default) +# win32 = Windows systems +# none = Empty template +#CONFIG_OS=unix + +# Select event loop implementation +# eloop = select() loop (default) +# eloop_win = Windows events and WaitForMultipleObject() loop +#CONFIG_ELOOP=eloop + +# Should we use poll instead of select? Select is used by default. +#CONFIG_ELOOP_POLL=y + +# Should we use epoll instead of select? Select is used by default. +#CONFIG_ELOOP_EPOLL=y + +# Should we use kqueue instead of select? Select is used by default. +#CONFIG_ELOOP_KQUEUE=y + +# Select layer 2 packet implementation +# linux = Linux packet socket (default) +# pcap = libpcap/libdnet/WinPcap +# freebsd = FreeBSD libpcap +# winpcap = WinPcap with receive thread +# ndis = Windows NDISUIO (note: requires CONFIG_USE_NDISUIO=y) +# none = Empty template +#CONFIG_L2_PACKET=linux + +# Disable Linux packet socket workaround applicable for station interface +# in a bridge for EAPOL frames. This should be uncommented only if the kernel +# is known to not have the regression issue in packet socket behavior with +# bridge interfaces (commit 'bridge: respect RFC2863 operational state')'). +#CONFIG_NO_LINUX_PACKET_SOCKET_WAR=y + +# PeerKey handshake for Station to Station Link (IEEE 802.11e DLS) +CONFIG_PEERKEY=y + +# IEEE 802.11w (management frame protection), also known as PMF +# Driver support is also needed for IEEE 802.11w. +#CONFIG_IEEE80211W=y + +# Select TLS implementation +# openssl = OpenSSL (default) +# gnutls = GnuTLS +# internal = Internal TLSv1 implementation (experimental) +# none = Empty template +#CONFIG_TLS=openssl + +# TLS-based EAP methods require at least TLS v1.0. Newer version of TLS (v1.1) +# can be enabled to get a stronger construction of messages when block ciphers +# are used. It should be noted that some existing TLS v1.0 -based +# implementation may not be compatible with TLS v1.1 message (ClientHello is +# sent prior to negotiating which version will be used) +#CONFIG_TLSV11=y + +# TLS-based EAP methods require at least TLS v1.0. Newer version of TLS (v1.2) +# can be enabled to enable use of stronger crypto algorithms. It should be +# noted that some existing TLS v1.0 -based implementation may not be compatible +# with TLS v1.2 message (ClientHello is sent prior to negotiating which version +# will be used) +#CONFIG_TLSV12=y + +# If CONFIG_TLS=internal is used, additional library and include paths are +# needed for LibTomMath. Alternatively, an integrated, minimal version of +# LibTomMath can be used. See beginning of libtommath.c for details on benefits +# and drawbacks of this option. +#CONFIG_INTERNAL_LIBTOMMATH=y +#ifndef CONFIG_INTERNAL_LIBTOMMATH +#LTM_PATH=/usr/src/libtommath-0.39 +#CFLAGS += -I$(LTM_PATH) +#LIBS += -L$(LTM_PATH) +#LIBS_p += -L$(LTM_PATH) +#endif +# At the cost of about 4 kB of additional binary size, the internal LibTomMath +# can be configured to include faster routines for exptmod, sqr, and div to +# speed up DH and RSA calculation considerably +#CONFIG_INTERNAL_LIBTOMMATH_FAST=y + +# Include NDIS event processing through WMI into wpa_supplicant/wpasvc. +# This is only for Windows builds and requires WMI-related header files and +# WbemUuid.Lib from Platform SDK even when building with MinGW. +#CONFIG_NDIS_EVENTS_INTEGRATED=y +#PLATFORMSDKLIB="/opt/Program Files/Microsoft Platform SDK/Lib" + +# Add support for old DBus control interface +# (fi.epitest.hostap.WPASupplicant) +#CONFIG_CTRL_IFACE_DBUS=n + +# Add support for new DBus control interface +# (fi.w1.hostap.wpa_supplicant1) +# CONFIG_CTRL_IFACE_DBUS_NEW=n + +# Add introspection support for new DBus control interface +# CONFIG_CTRL_IFACE_DBUS_INTRO=n + +# Add support for loading EAP methods dynamically as shared libraries. +# When this option is enabled, each EAP method can be either included +# statically (CONFIG_EAP_<method>=y) or dynamically (CONFIG_EAP_<method>=dyn). +# Dynamic EAP methods are build as shared objects (eap_*.so) and they need to +# be loaded in the beginning of the wpa_supplicant configuration file +# (see load_dynamic_eap parameter in the example file) before being used in +# the network blocks. +# +# Note that some shared parts of EAP methods are included in the main program +# and in order to be able to use dynamic EAP methods using these parts, the +# main program must have been build with the EAP method enabled (=y or =dyn). +# This means that EAP-TLS/PEAP/TTLS/FAST cannot be added as dynamic libraries +# unless at least one of them was included in the main build to force inclusion +# of the shared code. Similarly, at least one of EAP-SIM/AKA must be included +# in the main build to be able to load these methods dynamically. +# +# Please also note that using dynamic libraries will increase the total binary +# size. Thus, it may not be the best option for targets that have limited +# amount of memory/flash. +#CONFIG_DYNAMIC_EAP_METHODS=y + +# IEEE Std 802.11r-2008 (Fast BSS Transition) +#CONFIG_IEEE80211R=y + +# Add support for writing debug log to a file (/tmp/wpa_supplicant-log-#.txt) +CONFIG_DEBUG_FILE=y + +# Send debug messages to syslog instead of stdout +CONFIG_DEBUG_SYSLOG=y +# Set syslog facility for debug messages +CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON + +# Add support for sending all debug messages (regardless of debug verbosity) +# to the Linux kernel tracing facility. This helps debug the entire stack by +# making it easy to record everything happening from the driver up into the +# same file, e.g., using trace-cmd. +#CONFIG_DEBUG_LINUX_TRACING=y + +# Add support for writing debug log to Android logcat instead of standard +# output +#CONFIG_ANDROID_LOG=y + +# Enable privilege separation (see README 'Privilege separation' for details) +#CONFIG_PRIVSEP=y + +# Enable mitigation against certain attacks against TKIP by delaying Michael +# MIC error reports by a random amount of time between 0 and 60 seconds +#CONFIG_DELAYED_MIC_ERROR_REPORT=y + +# Enable tracing code for developer debugging +# This tracks use of memory allocations and other registrations and reports +# incorrect use with a backtrace of call (or allocation) location. +#CONFIG_WPA_TRACE=y +# For BSD, uncomment these. +#LIBS += -lexecinfo +#LIBS_p += -lexecinfo +#LIBS_c += -lexecinfo + +# Use libbfd to get more details for developer debugging +# This enables use of libbfd to get more detailed symbols for the backtraces +# generated by CONFIG_WPA_TRACE=y. +#CONFIG_WPA_TRACE_BFD=y +# For BSD, uncomment these. +#LIBS += -lbfd -liberty -lz +#LIBS_p += -lbfd -liberty -lz +#LIBS_c += -lbfd -liberty -lz + +# wpa_supplicant depends on strong random number generation being available +# from the operating system. os_get_random() function is used to fetch random +# data when needed, e.g., for key generation. On Linux and BSD systems, this +# works by reading /dev/urandom. It should be noted that the OS entropy pool +# needs to be properly initialized before wpa_supplicant is started. This is +# important especially on embedded devices that do not have a hardware random +# number generator and may by default start up with minimal entropy available +# for random number generation. +# +# As a safety net, wpa_supplicant is by default trying to internally collect +# additional entropy for generating random data to mix in with the data fetched +# from the OS. This by itself is not considered to be very strong, but it may +# help in cases where the system pool is not initialized properly. However, it +# is very strongly recommended that the system pool is initialized with enough +# entropy either by using hardware assisted random number generator or by +# storing state over device reboots. +# +# wpa_supplicant can be configured to maintain its own entropy store over +# restarts to enhance random number generation. This is not perfect, but it is +# much more secure than using the same sequence of random numbers after every +# reboot. This can be enabled with -e<entropy file> command line option. The +# specified file needs to be readable and writable by wpa_supplicant. +# +# If the os_get_random() is known to provide strong random data (e.g., on +# Linux/BSD, the board in question is known to have reliable source of random +# data from /dev/urandom), the internal wpa_supplicant random pool can be +# disabled. This will save some in binary size and CPU use. However, this +# should only be considered for builds that are known to be used on devices +# that meet the requirements described above. +CONFIG_NO_RANDOM_POOL=y + +# IEEE 802.11n (High Throughput) support (mainly for AP mode) +#CONFIG_IEEE80211N=y + +# IEEE 802.11ac (Very High Throughput) support (mainly for AP mode) +# (depends on CONFIG_IEEE80211N) +#CONFIG_IEEE80211AC=y + +# Wireless Network Management (IEEE Std 802.11v-2011) +# Note: This is experimental and not complete implementation. +#CONFIG_WNM=y + +# Interworking (IEEE 802.11u) +# This can be used to enable functionality to improve interworking with +# external networks (GAS/ANQP to learn more about the networks and network +# selection based on available credentials). +#CONFIG_INTERWORKING=y + +# Hotspot 2.0 +#CONFIG_HS20=y + +# Enable interface matching in wpa_supplicant +CONFIG_MATCH_IFACE=y + +# Disable roaming in wpa_supplicant +#CONFIG_NO_ROAMING=y + +# AP mode operations with wpa_supplicant +# This can be used for controlling AP mode operations with wpa_supplicant. It +# should be noted that this is mainly aimed at simple cases like +# WPA2-Personal while more complex configurations like WPA2-Enterprise with an +# external RADIUS server can be supported with hostapd. +CONFIG_AP=y + +# P2P (Wi-Fi Direct) +# This can be used to enable P2P support in wpa_supplicant. See README-P2P for +# more information on P2P operations. +CONFIG_P2P=y + +# Enable TDLS support +#CONFIG_TDLS=y + +# Wi-Fi Direct +# This can be used to enable Wi-Fi Direct extensions for P2P using an external +# program to control the additional information exchanges in the messages. +#CONFIG_WIFI_DISPLAY=y + +# Autoscan +# This can be used to enable automatic scan support in wpa_supplicant. +# See wpa_supplicant.conf for more information on autoscan usage. +# +# Enabling directly a module will enable autoscan support. +# For exponential module: +#CONFIG_AUTOSCAN_EXPONENTIAL=y +# For periodic module: +#CONFIG_AUTOSCAN_PERIODIC=y + +# Password (and passphrase, etc.) backend for external storage +# These optional mechanisms can be used to add support for storing passwords +# and other secrets in external (to wpa_supplicant) location. This allows, for +# example, operating system specific key storage to be used +# +# External password backend for testing purposes (developer use) +#CONFIG_EXT_PASSWORD_TEST=y + +# Enable Fast Session Transfer (FST) +#CONFIG_FST=y + +# Enable CLI commands for FST testing +#CONFIG_FST_TEST=y + +# OS X builds. This is only for building eapol_test. +#CONFIG_OSX=y + +# Automatic Channel Selection +# This will allow wpa_supplicant to pick the channel automatically when channel +# is set to "0". +# +# TODO: Extend parser to be able to parse "channel=acs_survey" as an alternative +# to "channel=0". This would enable us to eventually add other ACS algorithms in +# similar way. +# +# Automatic selection is currently only done through initialization, later on +# we hope to do background checks to keep us moving to more ideal channels as +# time goes by. ACS is currently only supported through the nl80211 driver and +# your driver must have survey dump capability that is filled by the driver +# during scanning. +# +# TODO: In analogy to hostapd be able to customize the ACS survey algorithm with +# a newly to create wpa_supplicant.conf variable acs_num_scans. +# +# Supported ACS drivers: +# * ath9k +# * ath5k +# * ath10k +# +# For more details refer to: +# http://wireless.kernel.org/en/users/Documentation/acs +#CONFIG_ACS=y + +# Support Multi Band Operation +#CONFIG_MBO=y diff --git a/core/wpa_supplicant/sources b/core/wpa_supplicant/sources new file mode 100644 index 00000000..f106958d --- /dev/null +++ b/core/wpa_supplicant/sources @@ -0,0 +1,2 @@ +https://w1.fi/releases/wpa_supplicant-2.9.tar.gz +files/.config wpa_supplicant/ diff --git a/core/wpa_supplicant/version b/core/wpa_supplicant/version new file mode 100644 index 00000000..6c795bbb --- /dev/null +++ b/core/wpa_supplicant/version @@ -0,0 +1 @@ +2.9 2 diff --git a/core/xz/build b/core/xz/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/core/xz/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/core/xz/checksums b/core/xz/checksums new file mode 100644 index 00000000..d04b13dc --- /dev/null +++ b/core/xz/checksums @@ -0,0 +1 @@ +3313fd2a95f43d88e44264e6b015e7d03053e681860b0d5d3f9baca79c57b7bf xz-5.2.4.tar.bz2 diff --git a/core/xz/sources b/core/xz/sources new file mode 100644 index 00000000..a6561896 --- /dev/null +++ b/core/xz/sources @@ -0,0 +1 @@ +https://tukaani.org/xz/xz-5.2.4.tar.bz2 diff --git a/core/xz/version b/core/xz/version new file mode 100644 index 00000000..9934192b --- /dev/null +++ b/core/xz/version @@ -0,0 +1 @@ +5.2.4 3 diff --git a/core/zlib/build b/core/zlib/build new file mode 100755 index 00000000..01090e82 --- /dev/null +++ b/core/zlib/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --libdir=/usr/lib \ + --shared + +make +make DESTDIR="$1" install diff --git a/core/zlib/checksums b/core/zlib/checksums new file mode 100644 index 00000000..5051c98a --- /dev/null +++ b/core/zlib/checksums @@ -0,0 +1 @@ +c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1 zlib-1.2.11.tar.gz diff --git a/core/zlib/sources b/core/zlib/sources new file mode 100644 index 00000000..17f901f4 --- /dev/null +++ b/core/zlib/sources @@ -0,0 +1 @@ +https://zlib.net/zlib-1.2.11.tar.gz diff --git a/core/zlib/version b/core/zlib/version new file mode 100644 index 00000000..90288038 --- /dev/null +++ b/core/zlib/version @@ -0,0 +1 @@ +1.2.11 1 diff --git a/extra/alsa-lib/build b/extra/alsa-lib/build new file mode 100755 index 00000000..d6f70b3d --- /dev/null +++ b/extra/alsa-lib/build @@ -0,0 +1,8 @@ +#!/bin/sh -e + +./configure \ + --without-debug \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/extra/alsa-lib/checksums b/extra/alsa-lib/checksums new file mode 100644 index 00000000..32fadbe8 --- /dev/null +++ b/extra/alsa-lib/checksums @@ -0,0 +1 @@ +c95ac63c0aad43a6ac457d960569096b0b2ef72dc4e3737e77e3e2de87022cec alsa-lib-1.2.1.1.tar.bz2 diff --git a/extra/alsa-lib/sources b/extra/alsa-lib/sources new file mode 100644 index 00000000..766d1395 --- /dev/null +++ b/extra/alsa-lib/sources @@ -0,0 +1 @@ +https://www.alsa-project.org/files/pub/lib/alsa-lib-1.2.1.1.tar.bz2 diff --git a/extra/alsa-lib/version b/extra/alsa-lib/version new file mode 100644 index 00000000..9a598df0 --- /dev/null +++ b/extra/alsa-lib/version @@ -0,0 +1 @@ +1.2.1.1 1 diff --git a/extra/alsa-utils/build b/extra/alsa-utils/build new file mode 100755 index 00000000..9c4602c8 --- /dev/null +++ b/extra/alsa-utils/build @@ -0,0 +1,11 @@ +#!/bin/sh -e + +./configure \ + --disable-alsaconf \ + --disable-bat \ + --with-curses=ncursesw \ + --disable-xmlto \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/extra/alsa-utils/checksums b/extra/alsa-utils/checksums new file mode 100644 index 00000000..4c3e9d37 --- /dev/null +++ b/extra/alsa-utils/checksums @@ -0,0 +1 @@ +0b110ba71ef41d3009db1bc4dcae0cf79efb99cb5426fa19d0312470560a2c0d alsa-utils-1.2.1.tar.bz2 diff --git a/extra/alsa-utils/depends b/extra/alsa-utils/depends new file mode 100644 index 00000000..167d2c94 --- /dev/null +++ b/extra/alsa-utils/depends @@ -0,0 +1,2 @@ +alsa-lib +ncurses diff --git a/extra/alsa-utils/sources b/extra/alsa-utils/sources new file mode 100644 index 00000000..4fd80f0b --- /dev/null +++ b/extra/alsa-utils/sources @@ -0,0 +1 @@ +https://www.alsa-project.org/files/pub/utils/alsa-utils-1.2.1.tar.bz2 diff --git a/extra/alsa-utils/version b/extra/alsa-utils/version new file mode 100644 index 00000000..cd3d02bc --- /dev/null +++ b/extra/alsa-utils/version @@ -0,0 +1 @@ +1.2.1 1 diff --git a/extra/atk/build b/extra/atk/build new file mode 100755 index 00000000..58e9cf84 --- /dev/null +++ b/extra/atk/build @@ -0,0 +1,14 @@ +#!/bin/sh -e + +export DESTDIR="$1" + +meson \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + -Ddocs=false \ + -Dintrospection=false \ + . output + +ninja -C output +ninja -C output install diff --git a/extra/atk/checksums b/extra/atk/checksums new file mode 100644 index 00000000..a4d52dc5 --- /dev/null +++ b/extra/atk/checksums @@ -0,0 +1 @@ +d4f0e3b3d21265fcf2bc371e117da51c42ede1a71f6db1c834e6976bb20997cb atk-2.34.1.tar.xz diff --git a/extra/atk/depends b/extra/atk/depends new file mode 100644 index 00000000..9e46ce22 --- /dev/null +++ b/extra/atk/depends @@ -0,0 +1,3 @@ +glib +libffi +meson make diff --git a/extra/atk/sources b/extra/atk/sources new file mode 100644 index 00000000..8d57b646 --- /dev/null +++ b/extra/atk/sources @@ -0,0 +1 @@ +https://ftp.gnome.org/pub/gnome/sources/atk/2.34/atk-2.34.1.tar.xz diff --git a/extra/atk/version b/extra/atk/version new file mode 100644 index 00000000..8f2581bf --- /dev/null +++ b/extra/atk/version @@ -0,0 +1 @@ +2.34.1 1 diff --git a/extra/autoconf/build b/extra/autoconf/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/extra/autoconf/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/extra/autoconf/checksums b/extra/autoconf/checksums new file mode 100644 index 00000000..821d9707 --- /dev/null +++ b/extra/autoconf/checksums @@ -0,0 +1 @@ +954bd69b391edc12d6a4a51a2dd1476543da5c6bbf05a95b59dc0dd6fd4c2969 autoconf-2.69.tar.gz diff --git a/extra/autoconf/depends b/extra/autoconf/depends new file mode 100644 index 00000000..8fd1a89e --- /dev/null +++ b/extra/autoconf/depends @@ -0,0 +1,2 @@ +m4 +perl diff --git a/extra/autoconf/sources b/extra/autoconf/sources new file mode 100644 index 00000000..399ad44a --- /dev/null +++ b/extra/autoconf/sources @@ -0,0 +1 @@ +https://ftp.gnu.org/pub/gnu/autoconf/autoconf-2.69.tar.gz diff --git a/extra/autoconf/version b/extra/autoconf/version new file mode 100644 index 00000000..9c78dec0 --- /dev/null +++ b/extra/autoconf/version @@ -0,0 +1 @@ +2.69 2 diff --git a/extra/automake/build b/extra/automake/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/extra/automake/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/extra/automake/checksums b/extra/automake/checksums new file mode 100644 index 00000000..0369191e --- /dev/null +++ b/extra/automake/checksums @@ -0,0 +1 @@ +608a97523f97db32f1f5d5615c98ca69326ced2054c9f82e65bade7fc4c9dea8 automake-1.16.1.tar.gz diff --git a/extra/automake/depends b/extra/automake/depends new file mode 100644 index 00000000..ef9f132a --- /dev/null +++ b/extra/automake/depends @@ -0,0 +1,2 @@ +autoconf +perl diff --git a/extra/automake/sources b/extra/automake/sources new file mode 100644 index 00000000..9d75a485 --- /dev/null +++ b/extra/automake/sources @@ -0,0 +1 @@ +https://ftp.gnu.org/gnu/automake/automake-1.16.1.tar.gz diff --git a/extra/automake/version b/extra/automake/version new file mode 100644 index 00000000..541e5c6e --- /dev/null +++ b/extra/automake/version @@ -0,0 +1 @@ +1.16.1 1 diff --git a/extra/cbindgen/build b/extra/cbindgen/build new file mode 100755 index 00000000..c9cd72cf --- /dev/null +++ b/extra/cbindgen/build @@ -0,0 +1,10 @@ +#!/bin/sh -e + +cargo fetch \ + --locked + +cargo build \ + --release \ + --frozen + +install -Dm755 target/release/cbindgen "$1/usr/bin/cbindgen" diff --git a/extra/cbindgen/checksums b/extra/cbindgen/checksums new file mode 100644 index 00000000..6a06579f --- /dev/null +++ b/extra/cbindgen/checksums @@ -0,0 +1 @@ +95c68020e5563440c8264c29d0db9a193c47476f83cfd848a13526a50ac7f55e v0.10.0.tar.gz diff --git a/extra/cbindgen/depends b/extra/cbindgen/depends new file mode 100644 index 00000000..64fe06e5 --- /dev/null +++ b/extra/cbindgen/depends @@ -0,0 +1 @@ +rust make diff --git a/extra/cbindgen/sources b/extra/cbindgen/sources new file mode 100644 index 00000000..71a4adf8 --- /dev/null +++ b/extra/cbindgen/sources @@ -0,0 +1 @@ +https://github.com/eqrion/cbindgen/archive/v0.10.0.tar.gz diff --git a/extra/cbindgen/version b/extra/cbindgen/version new file mode 100644 index 00000000..9336e4d1 --- /dev/null +++ b/extra/cbindgen/version @@ -0,0 +1 @@ +0.10.0 1 diff --git a/extra/ccache/build b/extra/ccache/build new file mode 100755 index 00000000..1b063cc2 --- /dev/null +++ b/extra/ccache/build @@ -0,0 +1,21 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var + +make + +install -Dm 755 ccache "$1/usr/bin/ccache" +install -Dm 644 doc/ccache.1 "$1/usr/share/man/man1/ccache.1" + +mkdir -p "$1/usr/lib/ccache/bin" + +triplet=$(cc -dumpmachine) + +for link in cc gcc g++ cpp c++ "$triplet-cc" "$triplet-gcc" \ + "$triplet-g++" "$triplet-cpp" "$triplet-c++"; do + ln -sf /usr/bin/ccache "$1/usr/lib/ccache/bin/$link" +done diff --git a/extra/ccache/checksums b/extra/ccache/checksums new file mode 100644 index 00000000..37379cb0 --- /dev/null +++ b/extra/ccache/checksums @@ -0,0 +1 @@ +73e2633ac9bca387b5a39c72a8f85634670c4091dab639228c433898163c86c0 ccache-3.7.6.tar.xz diff --git a/extra/ccache/depends b/extra/ccache/depends new file mode 100644 index 00000000..f22003e8 --- /dev/null +++ b/extra/ccache/depends @@ -0,0 +1 @@ +zlib diff --git a/extra/ccache/post-install b/extra/ccache/post-install new file mode 100755 index 00000000..75fdb200 --- /dev/null +++ b/extra/ccache/post-install @@ -0,0 +1,10 @@ +#!/bin/sh + +cat <<EOF + +NOTE: To enable 'ccache' add this to your + '.shellrc' or '.profile'. + +-> export PATH=/usr/lib/ccache/bin:\$PATH + +EOF diff --git a/extra/ccache/sources b/extra/ccache/sources new file mode 100644 index 00000000..4bb82721 --- /dev/null +++ b/extra/ccache/sources @@ -0,0 +1 @@ +https://github.com/ccache/ccache/releases/download/v3.7.6/ccache-3.7.6.tar.xz diff --git a/extra/ccache/version b/extra/ccache/version new file mode 100644 index 00000000..d8833805 --- /dev/null +++ b/extra/ccache/version @@ -0,0 +1 @@ +3.7.6 1 diff --git a/extra/clang/build b/extra/clang/build new file mode 100755 index 00000000..e241c57c --- /dev/null +++ b/extra/clang/build @@ -0,0 +1,17 @@ +#!/bin/sh -e + +export DESTDIR="$1" + +cmake -B build \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=Release \ + -DLLVM_ENABLE_RTTI=ON \ + -DLLVM_ENABLE_EH=ON \ + -DCLANG_BUILD_EXAMPLES=OFF \ + -DCLANG_INCLUDE_DOCS=OFF \ + -DCLANG_INCLUDE_TESTS=OFF \ + -DLIBCLANG_BUILD_STATIC=ON \ + -Wno-dev + +cmake --build build +cmake --install build diff --git a/extra/clang/checksums b/extra/clang/checksums new file mode 100644 index 00000000..53cd6a2f --- /dev/null +++ b/extra/clang/checksums @@ -0,0 +1 @@ +7ba81eef7c22ca5da688fdf9d88c20934d2d6b40bfe150ffd338900890aa4610 cfe-9.0.0.src.tar.xz diff --git a/extra/clang/depends b/extra/clang/depends new file mode 100644 index 00000000..7a0f0b0e --- /dev/null +++ b/extra/clang/depends @@ -0,0 +1,5 @@ +cmake make +llvm +python make +xz +zlib diff --git a/extra/clang/sources b/extra/clang/sources new file mode 100644 index 00000000..1c1883f3 --- /dev/null +++ b/extra/clang/sources @@ -0,0 +1 @@ +https://releases.llvm.org/9.0.0/cfe-9.0.0.src.tar.xz diff --git a/extra/clang/version b/extra/clang/version new file mode 100644 index 00000000..f8041b0a --- /dev/null +++ b/extra/clang/version @@ -0,0 +1 @@ +9.0.0 1 diff --git a/extra/cmake/build b/extra/cmake/build new file mode 100755 index 00000000..401a7c14 --- /dev/null +++ b/extra/cmake/build @@ -0,0 +1,38 @@ +#!/bin/sh -e + +# Use cmake to build cmake if installed. +# This leads to a much faster build. +if kiss l cmake; then + cmake -B build \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=/usr/lib \ + -DCMAKE_SHARED_LIBS=True \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_USE_SYSTEM_CURL=True \ + -DCMAKE_USE_SYSTEM_EXPAT=True \ + -DCMAKE_USE_SYSTEM_ZLIB=True \ + -DCMAKE_USE_SYSTEM_BZIP2=True \ + -DBUILD_TESTING=OFF + + cmake --build build + DESTDIR="$1" cmake --install build + +else + ./configure \ + --prefix=/usr \ + --system-curl \ + --system-expat \ + --system-zlib \ + --system-bzip2 \ + --parallel="$(nproc)" + + make + make DESTDIR="$1" install +fi + +# Grab the package version. +IFS=. read -r ver1 ver2 _ < "${0%/*}/version" + +# Remove docs. +rm -rf "$1/usr/doc" +rm -rf "$1/usr/share/cmake-$ver1.$ver2/Help" diff --git a/extra/cmake/checksums b/extra/cmake/checksums new file mode 100644 index 00000000..877837b6 --- /dev/null +++ b/extra/cmake/checksums @@ -0,0 +1 @@ +6da56556c63cab6e9a3e1656e8763ed4a841ac9859fefb63cbe79472e67e8c5f cmake-3.16.0.tar.gz diff --git a/extra/cmake/depends b/extra/cmake/depends new file mode 100644 index 00000000..ae18e004 --- /dev/null +++ b/extra/cmake/depends @@ -0,0 +1,5 @@ +bzip2 +curl +expat +libressl +zlib diff --git a/extra/cmake/sources b/extra/cmake/sources new file mode 100644 index 00000000..2fc2b2cb --- /dev/null +++ b/extra/cmake/sources @@ -0,0 +1 @@ +https://github.com/Kitware/CMake/releases/download/v3.16.0/cmake-3.16.0.tar.gz diff --git a/extra/cmake/version b/extra/cmake/version new file mode 100644 index 00000000..48e61399 --- /dev/null +++ b/extra/cmake/version @@ -0,0 +1 @@ +3.16.0 1 diff --git a/extra/cryptsetup/build b/extra/cryptsetup/build new file mode 100755 index 00000000..6e6631df --- /dev/null +++ b/extra/cryptsetup/build @@ -0,0 +1,12 @@ +#!/bin/sh -e + +machine=$(cc -dumpmachine) + +./configure \ + --prefix=/usr \ + --build="$machine" \ + --host="$machine" \ + --disable-blkid + +make +make DESTDIR="$1" install diff --git a/extra/cryptsetup/checksums b/extra/cryptsetup/checksums new file mode 100644 index 00000000..c9227e47 --- /dev/null +++ b/extra/cryptsetup/checksums @@ -0,0 +1 @@ +2af0ec9551ab9c870074cae9d3f68d82cab004f4095fa89db0e4413713424a46 cryptsetup-2.2.2.tar.xz diff --git a/extra/cryptsetup/depends b/extra/cryptsetup/depends new file mode 100644 index 00000000..0590f3c2 --- /dev/null +++ b/extra/cryptsetup/depends @@ -0,0 +1,4 @@ +json-c +lvm2 +popt +util-linux diff --git a/extra/cryptsetup/sources b/extra/cryptsetup/sources new file mode 100644 index 00000000..653fa179 --- /dev/null +++ b/extra/cryptsetup/sources @@ -0,0 +1 @@ +https://www.kernel.org/pub/linux/utils/cryptsetup/v2.2/cryptsetup-2.2.2.tar.xz diff --git a/extra/cryptsetup/version b/extra/cryptsetup/version new file mode 100644 index 00000000..da648f8d --- /dev/null +++ b/extra/cryptsetup/version @@ -0,0 +1 @@ +2.2.2 1 diff --git a/extra/efibootmgr/build b/extra/efibootmgr/build new file mode 100755 index 00000000..e15840ed --- /dev/null +++ b/extra/efibootmgr/build @@ -0,0 +1,10 @@ +#!/bin/sh -e + +patch -p1 < efivar.patch + +make \ + EXTRA_CFLAGS=-Os \ + EFIDIR=/boot/EFI + +install -Dm0755 src/efibootmgr "$1/usr/bin/efibootmgr" +install -Dm0644 src/efibootmgr.8 "$1/usr/share/man/man8/efibootmgr.8" diff --git a/extra/efibootmgr/checksums b/extra/efibootmgr/checksums new file mode 100644 index 00000000..cb79ce74 --- /dev/null +++ b/extra/efibootmgr/checksums @@ -0,0 +1,2 @@ +22a95ebe0d5c9fb2915b3a100450f8f37484d1dbb8b296f55b343cc84f10397d 17.tar.gz +167ac36fb4bd59e90fede0422280117c0b50d0ac3c0c7d478fea427cb9a6944c efivar.patch diff --git a/extra/efibootmgr/depends b/extra/efibootmgr/depends new file mode 100644 index 00000000..a760e6c7 --- /dev/null +++ b/extra/efibootmgr/depends @@ -0,0 +1,2 @@ +efivar +popt diff --git a/extra/efibootmgr/patches/efivar.patch b/extra/efibootmgr/patches/efivar.patch new file mode 100644 index 00000000..614195f3 --- /dev/null +++ b/extra/efibootmgr/patches/efivar.patch @@ -0,0 +1,14 @@ +diff --git a/src/efibootmgr.c b/src/efibootmgr.c +index de38f01..4e1a680 100644 +--- a/src/efibootmgr.c ++++ b/src/efibootmgr.c +@@ -1536,9 +1536,6 @@ parse_opts(int argc, char **argv) + "invalid numeric value %s\n", + optarg); + } +- /* XXX efivar-36 accidentally doesn't have a public +- * header for this */ +- extern int efi_set_verbose(int verbosity, FILE *errlog); + efi_set_verbose(opts.verbose - 2, stderr); + break; + case 'V': diff --git a/extra/efibootmgr/sources b/extra/efibootmgr/sources new file mode 100644 index 00000000..4afc6a0a --- /dev/null +++ b/extra/efibootmgr/sources @@ -0,0 +1,2 @@ +https://github.com/rhboot/efibootmgr/archive/17.tar.gz +patches/efivar.patch diff --git a/extra/efibootmgr/version b/extra/efibootmgr/version new file mode 100644 index 00000000..5e661b99 --- /dev/null +++ b/extra/efibootmgr/version @@ -0,0 +1 @@ +17 1 diff --git a/extra/efivar/build b/extra/efivar/build new file mode 100755 index 00000000..eb4038ac --- /dev/null +++ b/extra/efivar/build @@ -0,0 +1,17 @@ +#!/bin/sh -e + +patch -p1 < fix-gcc9-dp.h.patch +patch -p1 < fix-gcc9.patch + +# Avoid repeating ourselves. +mk() { + make \ + libdir=/usr/lib/ \ + bindir=/usr/bin/ \ + mandir=/usr/share/man/ \ + includedir=/usr/include/ \ + "$@" +} + +mk +mk DESTDIR="$1" install diff --git a/extra/efivar/checksums b/extra/efivar/checksums new file mode 100644 index 00000000..119c5824 --- /dev/null +++ b/extra/efivar/checksums @@ -0,0 +1,3 @@ +3c67feb93f901b98fbb897d5ca82931a6698b5bcd6ac34f0815f670d77747b9f efivar-37.tar.bz2 +475ca086eecabeaaff6111c3e6766f7e31d88a4fb6e0d082e34201e2cfaf295a fix-gcc9-dp.h.patch +7e72f92eb0d03558b9b14ede6a68e29c0051ffe745a8c7a84d06dce6af458351 fix-gcc9.patch diff --git a/extra/efivar/patches/fix-gcc9-dp.h.patch b/extra/efivar/patches/fix-gcc9-dp.h.patch new file mode 100644 index 00000000..f40942f4 --- /dev/null +++ b/extra/efivar/patches/fix-gcc9-dp.h.patch @@ -0,0 +1,56 @@ +From b98ba8921010d03f46704a476c69861515deb1ca Mon Sep 17 00:00:00 2001 +From: Peter Jones <pjones@redhat.com> +Date: Mon, 7 Jan 2019 10:30:59 -0500 +Subject: [PATCH] dp.h: make format_guid() handle misaligned guid pointers + safely. + +GCC 9 adds -Werror=address-of-packed-member, which causes us to see the +build error reported at + https://bugzilla.opensuse.org/show_bug.cgi?id=1120862 . + +That bug report shows us the following: + +In file included from dp.c:26: +dp.h: In function 'format_vendor_helper': +dp.h:120:37: error: taking address of packed member of 'struct <anonymous>' may result in an unaligned pointer value [-Werror=address-of-packed-member] + 120 | format_guid(buf, size, off, label, &dp->hw_vendor.vendor_guid); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~ +dp.h:74:25: note: in definition of macro 'format_guid' + 74 | _rc = efi_guid_to_str(guid, &_guidstr); \ + | ^~~~ +cc1: all warnings being treated as errors + +This patch makes format_guid() use a local variable as a bounce buffer +in the case that the guid we're passed is aligned as chaotic neutral. + +Note that this only fixes this instance and there may be others that bz +didn't show because it exited too soon, and I don't have a gcc 9 build +in front of me right now. + +Signed-off-by: Peter Jones <pjones@redhat.com> +--- + src/dp.h | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/src/dp.h b/src/dp.h +index aa4e390..20cb608 100644 +--- a/src/dp.h ++++ b/src/dp.h +@@ -70,8 +70,15 @@ + #define format_guid(buf, size, off, dp_type, guid) ({ \ + int _rc; \ + char *_guidstr = NULL; \ +- \ +- _rc = efi_guid_to_str(guid, &_guidstr); \ ++ efi_guid_t _guid; \ ++ const efi_guid_t * const _guid_p = \ ++ likely(__alignof__(guid) == sizeof(guid)) \ ++ ? guid \ ++ : &_guid; \ ++ \ ++ if (unlikely(__alignof__(guid) == sizeof(guid))) \ ++ memmove(&_guid, guid, sizeof(_guid)); \ ++ _rc = efi_guid_to_str(_guid_p, &_guidstr); \ + if (_rc < 0) { \ + efi_error("could not build %s GUID DP string", \ + dp_type); \ diff --git a/extra/efivar/patches/fix-gcc9.patch b/extra/efivar/patches/fix-gcc9.patch new file mode 100644 index 00000000..bbb6a99a --- /dev/null +++ b/extra/efivar/patches/fix-gcc9.patch @@ -0,0 +1,168 @@ +From c3c553db85ff10890209d0fe48fb4856ad68e4e0 Mon Sep 17 00:00:00 2001 +From: Peter Jones <pjones@redhat.com> +Date: Thu, 21 Feb 2019 15:20:12 -0500 +Subject: [PATCH] Fix all the places -Werror=address-of-packed-member catches. + +This gets rid of all the places GCC 9's -Werror=address-of-packed-member +flags as problematic. + +Fixes github issue #123 + +Signed-off-by: Peter Jones <pjones@redhat.com> +--- + src/dp-message.c | 6 ++++-- + src/dp.h | 12 ++++-------- + src/guid.c | 2 +- + src/include/efivar/efivar.h | 2 +- + src/ucs2.h | 27 +++++++++++++++++++-------- + 5 files changed, 29 insertions(+), 20 deletions(-) + +diff --git a/src/dp-message.c b/src/dp-message.c +index 3724e5f..9f96466 100644 +--- a/src/dp-message.c ++++ b/src/dp-message.c +@@ -620,11 +620,13 @@ _format_message_dn(char *buf, size_t size, const_efidp dp) + ) / sizeof(efi_ip_addr_t); + format(buf, size, off, "Dns", "Dns("); + for (int i=0; i < end; i++) { +- const efi_ip_addr_t *addr = &dp->dns.addrs[i]; ++ efi_ip_addr_t addr; ++ ++ memcpy(&addr, &dp->dns.addrs[i], sizeof(addr)); + if (i != 0) + format(buf, size, off, "Dns", ","); + format_ip_addr(buf, size, off, "Dns", +- dp->dns.is_ipv6, addr); ++ dp->dns.is_ipv6, &addr); + } + format(buf, size, off, "Dns", ")"); + break; +diff --git a/src/dp.h b/src/dp.h +index 20cb608..1f921d5 100644 +--- a/src/dp.h ++++ b/src/dp.h +@@ -71,13 +71,9 @@ + int _rc; \ + char *_guidstr = NULL; \ + efi_guid_t _guid; \ +- const efi_guid_t * const _guid_p = \ +- likely(__alignof__(guid) == sizeof(guid)) \ +- ? guid \ +- : &_guid; \ +- \ +- if (unlikely(__alignof__(guid) == sizeof(guid))) \ +- memmove(&_guid, guid, sizeof(_guid)); \ ++ const efi_guid_t * const _guid_p = &_guid; \ ++ \ ++ memmove(&_guid, guid, sizeof(_guid)); \ + _rc = efi_guid_to_str(_guid_p, &_guidstr); \ + if (_rc < 0) { \ + efi_error("could not build %s GUID DP string", \ +@@ -86,7 +82,7 @@ + _guidstr = onstack(_guidstr, \ + strlen(_guidstr)+1); \ + _rc = format(buf, size, off, dp_type, "%s", \ +- _guidstr); \ ++ _guidstr); \ + } \ + _rc; \ + }) +diff --git a/src/guid.c b/src/guid.c +index 306c9ff..3156b3b 100644 +--- a/src/guid.c ++++ b/src/guid.c +@@ -31,7 +31,7 @@ + extern const efi_guid_t efi_guid_zero; + + int NONNULL(1, 2) PUBLIC +-efi_guid_cmp(const efi_guid_t *a, const efi_guid_t *b) ++efi_guid_cmp(const void * const a, const void * const b) + { + return memcmp(a, b, sizeof (efi_guid_t)); + } +diff --git a/src/include/efivar/efivar.h b/src/include/efivar/efivar.h +index 316891c..ad6449d 100644 +--- a/src/include/efivar/efivar.h ++++ b/src/include/efivar/efivar.h +@@ -128,7 +128,7 @@ extern int efi_symbol_to_guid(const char *symbol, efi_guid_t *guid) + + extern int efi_guid_is_zero(const efi_guid_t *guid); + extern int efi_guid_is_empty(const efi_guid_t *guid); +-extern int efi_guid_cmp(const efi_guid_t *a, const efi_guid_t *b); ++extern int efi_guid_cmp(const void * const a, const void * const b); + + /* import / export functions */ + typedef struct efi_variable efi_variable_t; +diff --git a/src/ucs2.h b/src/ucs2.h +index dbb5900..edd8367 100644 +--- a/src/ucs2.h ++++ b/src/ucs2.h +@@ -23,16 +23,21 @@ + (((val) & ((mask) << (shift))) >> (shift)) + + static inline size_t UNUSED +-ucs2len(const uint16_t * const s, ssize_t limit) ++ucs2len(const void *vs, ssize_t limit) + { + ssize_t i; +- for (i = 0; i < (limit >= 0 ? limit : i+1) && s[i] != (uint16_t)0; i++) ++ const uint16_t *s = vs; ++ const uint8_t *s8 = vs; ++ ++ for (i = 0; ++ i < (limit >= 0 ? limit : i+1) && s8[0] != 0 && s8[1] != 0; ++ i++, s8 += 2, s++) + ; + return i; + } + + static inline size_t UNUSED +-ucs2size(const uint16_t * const s, ssize_t limit) ++ucs2size(const void *s, ssize_t limit) + { + size_t rc = ucs2len(s, limit); + rc *= sizeof (uint16_t); +@@ -69,10 +74,11 @@ utf8size(uint8_t *s, ssize_t limit) + } + + static inline unsigned char * UNUSED +-ucs2_to_utf8(const uint16_t * const chars, ssize_t limit) ++ucs2_to_utf8(const void * const voidchars, ssize_t limit) + { + ssize_t i, j; + unsigned char *ret; ++ const uint16_t * const chars = voidchars; + + if (limit < 0) + limit = ucs2len(chars, -1); +@@ -124,10 +130,12 @@ ucs2_to_utf8(const uint16_t * const chars, ssize_t limit) + } + + static inline ssize_t UNUSED NONNULL(4) +-utf8_to_ucs2(uint16_t *ucs2, ssize_t size, int terminate, uint8_t *utf8) ++utf8_to_ucs2(void *ucs2void, ssize_t size, int terminate, uint8_t *utf8) + { + ssize_t req; + ssize_t i, j; ++ uint16_t *ucs2 = ucs2void; ++ uint16_t val16; + + if (!ucs2 && size > 0) { + errno = EINVAL; +@@ -162,10 +170,13 @@ utf8_to_ucs2(uint16_t *ucs2, ssize_t size, int terminate, uint8_t *utf8) + val = utf8[i] & 0x7f; + i += 1; + } +- ucs2[j] = val; ++ val16 = val; ++ ucs2[j] = val16; ++ } ++ if (terminate) { ++ val16 = 0; ++ ucs2[j++] = val16; + } +- if (terminate) +- ucs2[j++] = (uint16_t)0; + return j; + }; + diff --git a/extra/efivar/sources b/extra/efivar/sources new file mode 100644 index 00000000..0f76dab3 --- /dev/null +++ b/extra/efivar/sources @@ -0,0 +1,3 @@ +https://github.com/rhboot/efivar/releases/download/37/efivar-37.tar.bz2 +patches/fix-gcc9-dp.h.patch +patches/fix-gcc9.patch diff --git a/extra/efivar/version b/extra/efivar/version new file mode 100644 index 00000000..f1e16caf --- /dev/null +++ b/extra/efivar/version @@ -0,0 +1 @@ +37 2 diff --git a/extra/expat/build b/extra/expat/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/extra/expat/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/extra/expat/checksums b/extra/expat/checksums new file mode 100644 index 00000000..d6999e9e --- /dev/null +++ b/extra/expat/checksums @@ -0,0 +1 @@ +f1063084dc4302a427dabcca499c8312b3a32a29b7d2506653ecc8f950a9a237 expat-2.2.9.tar.bz2 diff --git a/extra/expat/sources b/extra/expat/sources new file mode 100644 index 00000000..f28df8e3 --- /dev/null +++ b/extra/expat/sources @@ -0,0 +1 @@ +https://github.com/libexpat/libexpat/releases/download/R_2_2_9/expat-2.2.9.tar.bz2 diff --git a/extra/expat/version b/extra/expat/version new file mode 100644 index 00000000..d0111d82 --- /dev/null +++ b/extra/expat/version @@ -0,0 +1 @@ +2.2.9 1 diff --git a/extra/ffmpeg/build b/extra/ffmpeg/build new file mode 100755 index 00000000..db997201 --- /dev/null +++ b/extra/ffmpeg/build @@ -0,0 +1,25 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --enable-shared \ + --enable-gpl \ + --enable-version3 \ + --enable-libass \ + --enable-libmp3lame \ + --enable-libopus \ + --enable-libvorbis \ + --enable-libtheora \ + --enable-libvpx \ + --enable-libx264 \ + --enable-libx265 \ + --enable-libxvid \ + --enable-libwebp \ + --enable-libdrm \ + --disable-debug + +make CC="${CC:-gcc}" +make DESTDIR="$1" install + +# Remove examples. +rm -rf "$1/usr/share/ffmpeg/examples" diff --git a/extra/ffmpeg/checksums b/extra/ffmpeg/checksums new file mode 100644 index 00000000..4344f014 --- /dev/null +++ b/extra/ffmpeg/checksums @@ -0,0 +1 @@ +cec7c87e9b60d174509e263ac4011b522385fd0775292e1670ecc1180c9bb6d4 ffmpeg-4.2.1.tar.xz diff --git a/extra/ffmpeg/depends b/extra/ffmpeg/depends new file mode 100644 index 00000000..529204d8 --- /dev/null +++ b/extra/ffmpeg/depends @@ -0,0 +1,15 @@ +pkgconf make +perl make +yasm make +alsa-lib +lame +libass +libogg +libtheora +libvorbis +libwebp +libvpx +opus +x264 +x265 +xvidcore diff --git a/extra/ffmpeg/sources b/extra/ffmpeg/sources new file mode 100644 index 00000000..44e660ce --- /dev/null +++ b/extra/ffmpeg/sources @@ -0,0 +1 @@ +https://www.ffmpeg.org/releases/ffmpeg-4.2.1.tar.xz diff --git a/extra/ffmpeg/version b/extra/ffmpeg/version new file mode 100644 index 00000000..fa7b9c86 --- /dev/null +++ b/extra/ffmpeg/version @@ -0,0 +1 @@ +4.2.1 2 diff --git a/extra/firefox/build b/extra/firefox/build new file mode 100755 index 00000000..fb862887 --- /dev/null +++ b/extra/firefox/build @@ -0,0 +1,42 @@ +#!/bin/sh -e + +# Build autoconf 2.13 for Firefox's sole use. +# See: https://bugzilla.mozilla.org/show_bug.cgi?id=104642 +( + cd autoconf2.13 + + ./configure \ + --prefix="$PWD/../autoconf" \ + --program-suffix=-2.13 + + make + make install +) + +export PATH=$PWD/autoconf/bin:$PATH +export LDFLAGS="$LDFLAGS -Wl,-rpath=/usr/lib/firefox" +export CC=${CC:-gcc} +export CXX=${CXX:-g++} + +for patch in *.patch; do + patch -p1 < "$patch" +done + +# Fix OOM errors. +cores=$(nproc) +printf '%s\n' "mk_add_options MOZ_MAKE_FLAGS=\"-j$cores -l$cores\"" >> mozconfig + +./mach build +DESTDIR="$1" ./mach install + +rm -rf "$1/usr/include" +rm -rf "$1/usr/lib/firefox-devel" +rm -rf "$1/usr/share/idl" +rm -rf "$1/usr/lib/firefox/gtk2" +rm -f "$1/usr/lib/firefox/browser/features/fxmonitor@mozilla.org.xpi" +rm -f "$1/usr/lib/firefox/browser/features/screenshots@mozilla.org.xpi" +rm -f "$1/usr/lib/firefox/browser/features/webcompat-reporter@mozilla.org.xpi" +rm -f "$1/usr/lib/firefox/browser/features/webcompat@mozilla.org.xpi" + +install -D vendor.js "$1/usr/lib/firefox/browser/defaults/preferences/vendor.js" +install -D policies.json "$1/usr/lib/firefox/distribution/policies.json" diff --git a/extra/firefox/checksums b/extra/firefox/checksums new file mode 100644 index 00000000..30128dc0 --- /dev/null +++ b/extra/firefox/checksums @@ -0,0 +1,15 @@ +e67c448f9e82a19c737a72f9af1ccd325ba9e86fcbb1cd6839e6eda37d0f5410 firefox-71.0.source.tar.xz +f0611136bee505811e9ca11ca7ac188ef5323a8e2ef19cffd3edb3cf08fd791e autoconf-2.13.tar.gz +b5e70b12cc9dd18fffd7924a7d3a2e11574136fe0764359d08eba0755f1c5d4c mozconfig +960d82bbfdc88c95f5cb4f2e1c1bf23dae7519b3b7203914d7b3ddbff1ba4c28 stab.h +cfc7d5006a3381e1b04f642b518317e19790ee31d23757274fdfeaba65c98b0c vendor.js +f4ce7ee2485256b3f8c2bc467445f14b4730a7b895b17de7a21711d78bcfedea policies.json +315880530f09175788dfa48a1915bfa1e190bfd3e267988b9100cb93006c808c fix-fortify-system-wrappers.patch +418a2a9f80c41ee004cb640968617cab283b99f3d109aaf6180b0088d60c84b0 fix-sandbox-membarrier.patch +14f281ee323aa682e04479019171bde243ac6227820856aa03b162179b14bfd9 fix-seccomp-bpf.patch +b19aaae7fc45db643f8d2540d96919c745ea341e36d9aea2df40e3e90eb951f0 fix-toolkit.patch +e24f71a6a0d8d4637b2081780c66b01be4eeb4dd496031270d0ae0b898be94d2 fix-tools.patch +5e0fcfde375837074baad21a8ab26aa442a7940617ebd074a6b238a48f2ceb63 fix-webrtc-glibcisms.patch +1d4a8f110d34da478f5597727eda9acacebd443dd86cce5bb64f898c01feabce mallinfo.patch +49b1c589bc3248fa6389c8b9ff9316c5c5f10cb7868436c9c47cab888bdc8df6 firefox-71-no-dbus.patch +b050ee807c000f26d09ff0c3e79f0149f195d802efa92b8740a75e7f07267064 firefox-71-no-accessibility.patch diff --git a/extra/firefox/depends b/extra/firefox/depends new file mode 100644 index 00000000..7b3a39b9 --- /dev/null +++ b/extra/firefox/depends @@ -0,0 +1,53 @@ +alsa-lib +atk +bzip2 +cairo +cbindgen make +clang make +expat +ffmpeg +fontconfig +freetype-harfbuzz +fribidi +gdk-pixbuf +glib +gtk+2 make +gtk+3 +hicolor-icon-theme +libICE +libSM +libX11 +libXau +libXcomposite +libXcursor +libXdamage +libXext +libXfixes +libXi +libXinerama +libXrandr +libXrender +libXt +libXxf86vm +libdrm +libepoxy +libffi +libjpeg-turbo +libpng +libvpx +libxcb +libxshmfence +llvm make +mesa +nasm make +nodejs make +pango +perl make +pixman +python make +python2 make +rust make +util-linux +yasm make +zip make +zlib diff --git a/extra/firefox/files/mozconfig b/extra/firefox/files/mozconfig new file mode 100644 index 00000000..fbfc81f5 --- /dev/null +++ b/extra/firefox/files/mozconfig @@ -0,0 +1,59 @@ +ac_add_options --prefix=/usr +ac_add_options --libdir=/usr/lib + +ac_add_options --enable-official-branding +ac_add_options --enable-optimize="$CFLAGS" +ac_add_options --enable-install-strip +ac_add_options --enable-strip + +ac_add_options --without-system-nspr +ac_add_options --without-system-nss +ac_add_options --with-system-jpeg +ac_add_options --with-system-zlib +ac_add_options --with-system-bz2 +ac_add_options --with-system-png + +# System 'libvpx' is too new. +ac_add_options --without-system-libvpx + +ac_add_options --with-system-pixman +ac_add_options --with-system-ffi + +ac_add_options --disable-gconf +ac_add_options --disable-profiling +ac_add_options --disable-accessibility +ac_add_options --disable-tests +ac_add_options --disable-system-extension-dirs +ac_add_options --disable-parental-controls +ac_add_options --disable-debug-symbols +ac_add_options --disable-callgrind +ac_add_options --disable-vtune + +# Settings for musl. +ac_add_options --disable-elf-hack +ac_add_options --disable-gold +ac_add_options --disable-jemalloc +ac_add_options --enable-release + +# ALSA/PulseAudio (removed in 70 (still present in 71b4(?!)) +ac_add_options --disable-pulseaudio +ac_add_options --enable-alsa + +ac_add_options --disable-startup-notification + +# Respect the user. +ac_add_options MOZ_SERVICES_METRICS= +ac_add_options MOZ_PAY= +ac_add_options MOZ_SERVICES_HEALTHREPORTER= +ac_add_options MOZ_SERVICES_FXACCOUNTS= +ac_add_options MOZ_SERVICES_METRICS= +ac_add_options MOZ_DATA_REPORTING= +ac_add_options MOZ_DEVICES= +ac_add_options MOZ_REQUIRE_SIGNING= +ac_add_options MOZ_TELEMETRY_REPORTING= +ac_add_options --disable-crashreporter +ac_add_options --disable-updater +ac_add_options --disable-dbus +ac_add_options --disable-eme +ac_add_options --disable-necko-wifi +ac_add_options --disable-webrtc diff --git a/extra/firefox/files/policies.json b/extra/firefox/files/policies.json new file mode 100644 index 00000000..f918c5b5 --- /dev/null +++ b/extra/firefox/files/policies.json @@ -0,0 +1,21 @@ +{ + "policies": { + "DisableAppUpdate": true, + "DisableFirefoxStudies": true, + "DisablePocket": true, + "DisableTelemetry": true, + "DontCheckDefaultBrowser": true, + "DisableFeedbackCommands": true, + "DisableFirefoxAccounts": true, + "DisableFirefoxScreenshots": true, + "DisableFirefoxStudies": true, + "DisableMasterPasswordCreation": true, + "DisableSetDesktopBackground": true, + "DisableSystemAddonUpdate": true, + "DontCheckDefaultBrowser": true, + "ExtensionUpdate": false, + "NetworkPrediction": false, + "OverridePostUpdatePage": "", + "CaptivePortal": false + } +} diff --git a/extra/firefox/files/stab.h b/extra/firefox/files/stab.h new file mode 100644 index 00000000..6f70af39 --- /dev/null +++ b/extra/firefox/files/stab.h @@ -0,0 +1,71 @@ +/* $OpenBSD: stab.h,v 1.3 2003/06/02 19:34:12 millert Exp $ */ +/* $NetBSD: stab.h,v 1.4 1994/10/26 00:56:25 cgd Exp $ */ + +/*- + * Copyright (c) 1991 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)stab.h 5.2 (Berkeley) 4/4/91 + */ + +#ifndef _STAB_H_ +#define _STAB_H_ + +/* + * The following are symbols used by various debuggers and by the Pascal + * compiler. Each of them must have one (or more) of the bits defined by + * the N_STAB mask set. + */ + +#define N_GSYM 0x20 /* global symbol */ +#define N_FNAME 0x22 /* F77 function name */ +#define N_FUN 0x24 /* procedure name */ +#define N_STSYM 0x26 /* data segment variable */ +#define N_LCSYM 0x28 /* bss segment variable */ +#define N_MAIN 0x2a /* main function name */ +#define N_PC 0x30 /* global Pascal symbol */ +#define N_RSYM 0x40 /* register variable */ +#define N_SLINE 0x44 /* text segment line number */ +#define N_DSLINE 0x46 /* data segment line number */ +#define N_BSLINE 0x48 /* bss segment line number */ +#define N_SSYM 0x60 /* structure/union element */ +#define N_SO 0x64 /* main source file name */ +#define N_LSYM 0x80 /* stack variable */ +#define N_BINCL 0x82 /* include file beginning */ +#define N_SOL 0x84 /* included source file name */ +#define N_PSYM 0xa0 /* parameter variable */ +#define N_EINCL 0xa2 /* include file end */ +#define N_ENTRY 0xa4 /* alternate entry point */ +#define N_LBRAC 0xc0 /* left bracket */ +#define N_EXCL 0xc2 /* deleted include file */ +#define N_RBRAC 0xe0 /* right bracket */ +#define N_BCOMM 0xe2 /* begin common */ +#define N_ECOMM 0xe4 /* end common */ +#define N_ECOML 0xe8 /* end common (local name) */ +#define N_LENG 0xfe /* length of preceding entry */ + +#endif /* !_STAB_H_ */ diff --git a/extra/firefox/files/vendor.js b/extra/firefox/files/vendor.js new file mode 100644 index 00000000..65bc0d95 --- /dev/null +++ b/extra/firefox/files/vendor.js @@ -0,0 +1,619 @@ +// KISS' vendor.js. +// +// Sources: +// - GNU IceCat, +// - OpenBSD, +// - GHacks user.js +// - pyllyukko/user.js +// - anarcat/firefox-tmp +// - Debian + +// +// STARTUP +// + +pref("browser.newtab.preload", false); +pref("browser.newtabpage.directory.ping", ""); +pref("browser.newtabpage.directory.source", "data:application/json,{}"); +pref("browser.newtabpage.enabled", false); +pref("browser.newtabpage.enhanced", false); +pref("browser.newtabpage.introShown", false); +pref("browser.newtabpage.activity-stream.feeds.telemetry", false); +pref("browser.newtabpage.activity-stream.telemetry", false); +pref("browser.newtabpage.activity-stream.telemetry.ping.endpoint", ""); +pref("browser.newtabpage.activity-stream.telemetry.ut.events", false); +pref("browser.newtabpage.activity-stream.telemetry.structuredIngestion", false); +pref("browser.newtabpage.activity-stream.feeds.snippets", false); +pref("browser.newtabpage.activity-stream.asrouter.providers.snippets", ""); +pref("browser.newtabpage.activity-stream.feeds.section.topstories", false); +pref("browser.newtabpage.activity-stream.section.highlights.includePocket", false); +pref("browser.newtabpage.activity-stream.showSponsored", false); +pref("browser.newtabpage.activity-stream.feeds.discoverystreamfeed", false); + +// +// GEO +// + +pref("geo.enabled", false); +pref("geo.provider.use_gpsd", false); +pref("geo.wifi.uri", ""); +pref("browser.search.geoip.url", ""); +pref("browser.search.geoSpecificDefaults", false); +pref("browser.search.geoSpecificDefaults.url", ""); + +// +// LANGUAGE +// + +pref("intl.accept_languages", "en-US, en"); +pref("javascript.use_us_english_locale", true); +pref("intl.charset.fallback.override", "windows-1252"); + +// +// SILENT FIREFOX +// + +pref("app.update.auto", false); +pref("app.update.enabled", false); +pref("browser.newtabbage.enabled", false); +pref("browser.search.update", false); +pref("extensions.getAddons.showPane", false); +pref("extensions.htmlaboutaddons.recommendations.enabled", false); +pref("toolkit.telemetry.unified", false); +pref("toolkit.telemetry.server", "data:,"); +pref("toolkit.telemetry.archive.enabled", false); +pref("toolkit.telemetry.newProfilePing.enabled", false); +pref("toolkit.telemetry.shutdownPingSender.enabled", false); +pref("toolkit.telemetry.updatePing.enabled", false); +pref("toolkit.telemetry.bhrPing.enabled", false); +pref("toolkit.telemetry.firstShutdownPing.enabled", false); +pref("toolkit.telemetry.hybridContent.enabled", false); +pref("toolkit.telemetry.coverage.opt-out", true); +pref("toolkit.telemetry.shutdownPingSender.enabledFirstSession", false); +pref("toolkit.telemetry.server_owner", ""); +pref("toolkit.telemetry.geckoview.streaming", false); +pref("toolkit.telemetry.ecosystemtelemetry.enabled", false); +pref("toolkit.telemetry.cachedClientID", ""); +pref("toolkit.telemetry.enabled", false); +pref("toolkit.telemetry.rejected", true); +pref("toolkit.telemetry.server", ""); +pref("toolkit.telemetry.unifiedIsOptIn", false); +pref("toolkit.telemetry.prompted", 2); +pref("security.protectionspopup.recordEventTelemetry", false); +pref("security.identitypopup.recordEventTelemetry", false); +pref("privacy.trackingprotection.origin_telemetry.enabled", false); +pref("privacy.trackingprotection.pbmode.enabled", false); +pref("permissions.eventTelemetry.enabled", false); +pref("browser.urlbar.eventTelemetry.enabled", false); +pref("toolkit.coverage.opt-out", true); +pref("toolkit.coverage.endpoint.base", ""); +pref("datareporting.healthreport.uploadEnabled", false); +pref("datareporting.policy.dataSubmissionEnabled", false); +pref("datareporting.healthreport.about.reportUrl", "127.0.0.1"); +pref("datareporting.healthreport.documentServerURI", "127.0.0.1"); +pref("datareporting.policy.dataSubmissionPolicyBypassNotification", true); +pref("datareporting.policy.firstRunURL", ""); +pref("startup.homepage_welcome_url.additional", ""); +pref("browser.startup.firstrunSkipsHomepage", true); +pref("healthreport.uploadEnabled", false); +pref("social.toast-notifications.enabled", false); +pref("datareporting.healthreport.service.enabled", false); +pref("browser.slowStartup.notificationDisabled", true); +pref("network.http.sendRefererHeader", 2); +pref("network.http.referer.spoofSource", false); +pref("app.shield.optoutstudies.enabled", false); +pref("extensions.shield-recipe-client.enabled", false); +pref("browser.discovery.enabled", false); +pref("breakpad.reportURL", ""); +pref("browser.tabs.crashReporting.sendReport", false); +pref("browser.crashReports.unsubmittedCheck.enabled", false); +pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false); +pref("captivedetect.canonicalURL", ""); +pref("network.captive-portal-service.enabled", false); +pref("network.connectivity-service.enabled", false); +pref("extensions.blocklist.enabled", false); +pref("privacy.announcements.enabled", false); +pref("browser.snippets.enabled", false); +pref("browser.snippets.syncPromo.enabled", false); +pref("browser.snippets.geoUrl", "http://127.0.0.1/"); +pref("browser.snippets.updateUrl", "http://127.0.0.1/"); +pref("browser.snippets.statsUrl", "http://127.0.0.1/"); +pref("datareporting.policy.firstRunTime", 0); +pref("datareporting.policy.dataSubmissionPolicyVersion", 2); +pref("browser.webapps.checkForUpdates", 0); +pref("browser.webapps.updateCheckUrl", "http://127.0.0.1/"); +pref("dom.flyweb.enabled", false); +pref("services.sync.autoconnect", false); +pref("services.sync.engine.addons", false); +pref("services.sync.engine.bookmarks", false); +pref("services.sync.engine.history", false); +pref("services.sync.engine.passwords", false); +pref("services.sync.engine.prefs", false); +pref("services.sync.engine.tabs", false); +pref("extensions.webservice.discoverURL", ""); +pref("browser.shell.checkDefaultBrowser", false); +pref("shell.checkDefaultClient", false); +pref("browser.newtabpage.directory.source", 'data:application/json,{}'); +pref("browser.urlbar.suggest.searches", false); +pref("geo.wifi.scan", false); +pref("dom.push.connection.enabled", false); +pref("extensions.update.url", ""); +pref("extensions.update.background.url", ""); +pref("extensions.blocklist.detailsURL", ""); +pref("extensions.blocklist.itemURL", ""); +pref("extensions.blocklist.url", ""); +pref("extensions.hotfix.url", ""); +pref("extensions.getAddons.get.url", ""); +pref("extensions.getAddons.getWithPerformance.url", ""); +pref("extensions.getAddons.search.browseURL", ""); +pref("services.settings.server", ""); +pref("datareporting.healthreport.documentServerURI", ""); +pref("general.useragent.updates.enabled", false); +pref("general.useragent.updates.url", ""); +pref("identity.fxaccounts.auth.uri", ""); +pref("identity.fxaccounts.remote.root", ""); +pref("identity.fxaccounts.skipDeviceRegistration", true); +pref("browser.translation.bing.authURL", ""); +pref("browser.translation.bing.translateArrayURL", ""); +pref("browser.translation.yandex.translateURLOverride", ""); +pref("browser.translation.engine", "bing"); +pref("browser.aboutHomeSnippets.updateUrl", "nonexistent://test"); +pref("browser.newtabpage.activity-stream.default.sites", ""); +pref("browser.newtabpage.activity-stream.tippyTop.service.endpoint", ""); +pref("browser.uitour.pinnedTabUrl", ""); +pref("browser.uitour.url", ""); +pref("browser.search.isUS", true); +pref("browser.search.countryCode", "US"); +pref("browser.ping-centre.staging.endpoint", ""); +pref("browser.ping-centre.production.endpoint", ""); +pref("browser.contentblocking.report.monitor.sign_in_url", ""); +pref("browser.contentblocking.report.monitor.url", ""); +pref("identity.fxaccounts.service.monitorLoginUrl", ""); +pref("network.trr.resolvers", ""); +pref("network.trr.uri", ""); +pref("security.certerrors.mitm.priming.endpoint", ""); +pref("signon.management.page.breachAlertUrl", ""); +pref("network.connectivity-service.IPv4.url", ""); +pref("network.connectivity-service.IPv6.url", ""); +pref("accessibility.support.url", ""); +pref("app.feedback.baseURL", ""); +pref("app.normandy.shieldLearnMoreUrl", ""); +pref("app.update.url", ""); +pref("browser.chrome.errorReporter.infoURL", ""); +pref("browser.contentblocking.report.cookie.url", ""); +pref("browser.dictionaries.download.url", ""); +pref("browser.safebrowsing.provider.google.reportMalwareMistakeURL", ""); +pref("browser.safebrowsing.provider.google.reportPhishMistakeURL", ""); +pref("browser.safebrowsing.provider.google.reportURL", ""); +pref("browser.safebrowsing.provider.google4.dataSharingURL", ""); +pref("browser.safebrowsing.provider.google4.reportMalwareMistakeURL", ""); +pref("browser.safebrowsing.provider.google4.reportPhishMistakeURL", ""); +pref("browser.safebrowsing.provider.google4.reportURL", ""); +pref("browser.safebrowsing.reportPhishURL", ""); +pref("devtools.devices.url", ""); +pref("devtools.performance.recording.ui-base-url", ""); +pref("devtools.webide.templatesURL", ""); +pref("extensions.getAddons.compatOverides.url", ""); +pref("extensions.getAddons.discovery.api_url", ""); +pref("extensions.getAddons.langpacks.url", ""); +pref("extensions.recommendations.themeRecommendationUrl", ""); +pref("gecko.handlerService.schemes.webcal.0.name", ""); +pref("gecko.handlerService.schemes.webcal.0.uriTemplate", ""); +pref("gecko.handlerService.schemes.irc.0.name", ""); +pref("gecko.handlerService.schemes.irc.0.uriTemplate", ""); +pref("media.gmp-manager.url", ""); + +// Firefox connects to cloudfront on startup unless +// these are false/blank. +pref("browser.selfsupport.url", ""); + +// +// "SAFE" BROWSING +// + +pref("browser.safebrowsing.malware.enabled", false); +pref("browser.safebrowsing.phishing.enabled", false); +pref("browser.safebrowsing.downloads.enabled", false); +pref("browser.safebrowsing.downloads.remote.enabled", false); +pref("browser.safebrowsing.downloads.remote.url", ""); +pref("browser.safebrowsing.downloads.remote.block_potentially_unwanted", false); +pref("browser.safebrowsing.downloads.remote.block_uncommon", false); +pref("browser.safebrowsing.provider.mozilla.updateURL", ""); +pref("browser.safebrowsing.provider.mozilla.gethashURL", ""); +pref("browser.safebrowsing.provider.google.gethashURL", ""); +pref("browser.safebrowsing.provider.google.updateURL", ""); +pref("browser.safebrowsing.provider.google4.gethashURL", ""); +pref("browser.safebrowsing.provider.google4.updateURL", ""); +pref("privacy.trackingprotection.introURL", ""); + +// +// EXPERIMENTS +// + +pref("app.normandy.enabled", false); +pref("app.normandy.api_url", ""); +pref("app.normandy.user_id", ""); +pref("extensions.systemAddon.update.url", ""); +pref("browser.ping-centre.telemetry", false); +pref("extensions.screenshots.disabled", true); +pref("extensions.screenshots.upload-disabled", true); +pref("extensions.formautofill.addresses.enabled", false); +pref("extensions.formautofill.available", "off"); +pref("extensions.formautofill.creditCards.enabled", false); +pref("extensions.formautofill.heuristics.enabled", false); +pref("extensions.webcompat-reporter.enabled", false); +pref("experiments.supported", false); +pref("experiments.enabled", false); +pref("experiments.manifest.uri", ""); +pref("network.allow-experiments", false); +pref("privacy.trackingprotection.enabled", false); + +// +// IMPLICIT OUTBOUND CONNECTIONS +// + +pref("network.prefetch-next", false); +pref("network.dns.disablePrefetch", true); +pref("network.dns.disablePrefetchFromHTTPS", true); +pref("network.http.keep-alive.timeout", 15); +pref("network.predictor.enabled", false); +pref("network.predictor.enable-prefetch", false); +pref("network.http.speculative-parallel-limit", 0); +pref("browser.startup.page", 0); +pref("browser.send_pings", false); +pref("browser.send_pings.require_same_host", true); +pref("network.dns.blockDotOnion", true); +pref("browser.casting.enabled", false); + +// +// PROTOCOLS +// + +pref("network.dns.disableIPv6", true); +pref("network.http.altsvc.enabled", false); +pref("network.http.altsvc.oe", false); +pref("network.proxy.socks_remote_dns", true); +pref("network.trr.mode", 5); +pref("network.file.disable_unc_paths", true); +pref("network.gio.supported-protocols", ""); +pref("network.http.pipelining", true); +pref("network.http.proxy.pipelining", true); +pref("network.http.pipelining.maxrequests", 10); +pref("nglayout.initialpaint.delay", 0); +pref("network.protocol-handler.warn-external-default", true); +pref("network.protocol-handler.external.http", false); +pref("network.protocol-handler.external.https", false); +pref("network.protocol-handler.external.javascript",false); +pref("network.protocol-handler.external.moz-extension", false); +pref("network.protocol-handler.external.ftp", false); +pref("network.protocol-handler.external.file", false); +pref("network.protocol-handler.external.about", false); +pref("network.protocol-handler.external.chrome", false); +pref("network.protocol-handler.external.blob", false); +pref("network.protocol-handler.external.data", false); +pref("network.protocol-handler.expose-all", false); +pref("network.protocol-handler.expose.http", true); +pref("network.protocol-handler.expose.https", true); +pref("network.protocol-handler.expose.javascript", true); +pref("network.protocol-handler.expose.moz-extension", true); +pref("network.protocol-handler.expose.ftp", true); +pref("network.protocol-handler.expose.file", true); +pref("network.protocol-handler.expose.about", true); +pref("network.protocol-handler.expose.chrome", true); +pref("network.protocol-handler.expose.blob", true); +pref("network.protocol-handler.expose.data", true); + +// +// SEARCH / AUTOFILL / FORMS +// + +pref("browser.fixup.alternate.enabled", false); +pref("browser.urlbar.trimURLs", false); +pref("browser.sessionhistory.max_entries", 10); +pref("layout.css.visited_links_enabled", false); +pref("browser.search.suggest.enabled", false); +pref("browser.urlbar.usepreloadedtopurls.enabled", false); +pref("browser.urlbar.speculativeConnect.enabled", false); +pref("browser.formfill.enable", false); +pref("browser.taskbar.lists.enabled", false); +pref("browser.taskbar.lists.frequent.enabled", false); +pref("browser.taskbar.lists.recent.enabled", false); +pref("browser.taskbar.lists.tasks.enabled", false); +pref("browser.taskbar.previews.enable", false); + +// +// PASSWORDS +// + +pref("signon.autofillForms", false); +pref("signon.formlessCapture.enabled", false); +pref("network.auth.subresource-http-auth-allow", 1); + +// +// CACHE +// + +pref("browser.cache.disk.enable", false); +pref("browser.sessionstore.privacy_level", 2); +pref("browser.sessionstore.interval", 30000); +pref("toolkit.winRegisterApplicationRestart", false); +pref("browser.shell.shortcutFavicons", false); +pref("alerts.showFavicons", false); + +// +// CIPHERS +// + +pref("security.ssl.require_safe_negotiation", true); +pref("security.ssl.disable_session_identifiers", true); +pref("security.ssl.errorReporting.automatic", false); +pref("security.tls.enable_0rtt_data", false); +pref("security.ssl.enable_ocsp_stapling", true); +pref("security.OCSP.enabled", 1); +pref("security.OCSP.require", true); +pref("security.pki.sha1_enforcement_level", 1); +pref("security.family_safety.mode", 0); +pref("security.cert_pinning.enforcement_level", 2); +pref("security.ssl.errorReporting.enabled", false); +pref("security.ssl.errorReporting.url", ""); +pref("security.mixed_content.block_active_content", true); +pref("security.mixed_content.block_display_content", true); +pref("security.mixed_content.block_object_subrequest", true); +pref("security.ssl.treat_unsafe_negotiation_as_broken", true); +pref("browser.ssl_override_behavior", 1); +pref("browser.xul.error_pages.expert_bad_cert", true); +pref("security.insecure_connection_icon.enabled", true); +pref("security.insecure_connection_text.enabled", true); +pref("security.ssl3.ecdhe_ecdsa_rc4_128_sha", false); +pref("security.ssl3.ecdhe_rsa_rc4_128_sha", false); +pref("security.ssl3.rsa_rc4_128_md5", false); +pref("security.ssl3.rsa_rc4_128_sha", false); +pref("security.tls.version.min", 1); +pref("security.ssl3.dhe_rsa_aes_128_sha", false); +pref("security.ssl3.dhe_rsa_aes_256_sha", false); + +// +// FONTS +// + +pref("gfx.font_rendering.opentype_svg.enabled", false); +pref("gfx.font_rendering.graphite.enabled", false); + +// +// HEADERS / REFERERS +// + +pref("network.http.referer.XOriginPolicy", 2); +pref("network.http.referer.XOriginTrimmingPolicy", 0); +pref("network.http.referer.hideOnionSource", true); +pref("privacy.donottrackheader.enabled", true); + +// +// CONTAINERS +// + +pref("privacy.userContext.ui.enabled", true); +pref("privacy.userContext.enabled", true); +pref("privacy.usercontext.about_newtab_segregation.enabled", true); +pref("privacy.userContext.longPressBehavior", 2); + +// +// PLUGINS +// + +pref("plugin.state.flash", 0); +pref("plugin.state.java", 0); +pref("media.gmp-widevinecdm.visible", false); +pref("media.gmp-widevinecdm.enabled", false); +pref("media.eme.enabled", false); +pref("media.gmp-manager.url.override", "data:text/plain,"); +pref("browser.eme.ui.enabled", false); +pref("media.eme.apiVisible", false); +pref("media.gmp-provider.enabled", false); +pref("media.gmp-gmpopenh264.enabled", false); +pref("media.gmp-gmpopenh264.provider.enabled", false); +pref("plugins.hide_infobar_for_missing_plugin", true); +pref("plugins.hide_infobar_for_outdated_plugin", true); +pref("plugins.notifyMissingFlash", false); +pref("dom.ipc.plugins.flash.subprocess.crashreporter.enabled", false); +pref("dom.ipc.plugins.reportCrashURL", false); +pref("plugins.click_to_play", true); + +// +// CAMERA / MIC +// + +pref("media.peerconnection.enabled", false); +pref("media.peerconnection.ice.default_address_only", true); +pref("media.peerconnection.ice.no_host", true); +pref("webgl.disabled", true); +pref("webgl.dxgl.enabled", false); +pref("webgl.enable-webgl2", false); +pref("webgl.min_capability_mode", true); +pref("webgl.disable-extensions", true); +pref("webgl.disable-fail-if-major-performance-caveat", true); +pref("media.getusermedia.screensharing.enabled", false); +pref("media.getusermedia.browser.enabled", false); +pref("media.getusermedia.audiocapture.enabled", false); +pref("media.autoplay.enabled.user-gestures-needed", false); +pref("media.block-autoplay-until-in-foreground", true); + +// +// WINDOW MEDDLING / POPUPS +// + +pref("dom.disable_window_open_feature.close", true); +pref("dom.disable_window_open_feature.location", true); +pref("dom.disable_window_open_feature.menubar", true); +pref("dom.disable_window_open_feature.minimizable", true); +pref("dom.disable_window_open_feature.personalbar", true); +pref("dom.disable_window_open_feature.resizable", true); +pref("dom.disable_window_open_feature.status", true); +pref("dom.disable_window_open_feature.titlebar", true); +pref("dom.disable_window_open_feature.toolbar", true); +pref("dom.disable_window_move_resize", true); +pref("browser.link.open_newwindow", 3); +pref("browser.link.open_newwindow.restriction", 0); +pref("dom.disable_open_during_load", true); +pref("dom.popup_allowed_events", "click dblclick"); + +// +// WEB WORKERS +// + +pref("dom.serviceWorkers.enabled", false); +pref("dom.push.enabled", false); +pref("dom.webnotifications.enabled", false); +pref("dom.webnotifications.serviceworker.enabled", false); +pref("permissions.default.desktop-notification", 2); + +// +// DOM / JAVASCRIPT +// + +pref("dom.event.clipboardevents.enabled", false); +pref("middlemouse.paste", false); +pref("dom.allow_cut_copy", false); +pref("dom.disable_beforeunload", true); +pref("dom.vibrator.enabled", false); +pref("javascript.options.asmjs", false); +pref("javascript.options.wasm", false); +pref("dom.targetBlankNoOpener.enabled", true); + +// +// HARDWARE FINGERPRINTING +// + +pref("dom.battery.enabled", false); +pref("dom.vr.enabled", false); +pref("media.navigator.enabled", false); +pref("dom.webaudio.enabled", false); + +// +// MISC +// + +pref("accessibility.force_disabled", 1); +pref("beacon.enabled", false); +pref("browser.helperApps.deleteTempFileOnExit", true); +pref("browser.pagethumbnails.capturing_disabled", true); +pref("browser.tabs.remote.allowLinkedWebInFileUriProcess", false); +pref("browser.uitour.enabled", false); +pref("devtools.chrome.enabled", false); +pref("devtools.debugger.remote-enabled", false); +pref("devtools.webide.enabled", false); +pref("devtools.webide.autoinstallADBExtension", false); +pref("middlemouse.contentLoadURL", false); +pref("network.http.redirection-limit", 10); +pref("permissions.manager.defaultsUrl", ""); +pref("webchannel.allowObject.urlWhitelist", ""); +pref("network.IDN_show_punycode", true); +pref("social.whitelist", ""); +pref("social.directories", ""); +pref("social.shareDirectory", ""); +pref("browser.apps.URL", ""); +pref("dom.enable_user_timing", false); +pref("dom.mozTCPSocket.enabled", false); +pref("dom.netinfo.enabled", false); +pref("dom.telephony.enabled", false); +pref("media.webspeech.recognition.enable", false); +pref("device.sensors.enabled", false); +pref("media.webspeech.synth.enabled", false); +pref("dom.gamepad.enabled", false); +pref("dom.enable_resource_timing", false); +pref("dom.archivereader.enabled", false); +pref("camera.control.face_detection.enabled", false); +pref("browser.search.region", "US"); +pref("intl.locale.matchOS", false); +pref("clipboard.autocopy", false); +pref("browser.fixup.alternate.enabled", false); +pref("media.video_stats.enabled", false); +pref("devtools.chrome.enabled", false); +pref("devtools.debugger.force-local", true); +pref("browser.startup.homepage_override.mstone", "ignore"); + +// Taken from TOR browser. +pref("general.buildID.override", "20100101"); +pref("browser.startup.homepage_override.buildID", "20100101"); +pref("toolkit.telemetry.previousBuildID", "20100101"); + +// +// DOWNLOADS +// + +pref("browser.download.useDownloadDir", false); +pref("browser.download.manager.addToRecentDocs", false); +pref("browser.download.hide_plugins_without_extensions", false); + +// +// EXTENSIONS +// + +pref("extensions.enabledScopes", 5); +pref("extensions.autoDisableScopes", 15); +pref("extensions.update.enabled", false); +pref("xpinstall.signatures.required", true); +pref("extensions.getAddons.cache.enabled", false); +pref("lightweightThemes.update.enabled", false); +pref("extensions.systemAddon.update.enabled", false); +pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr", false); +pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false); +pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false); + +// +// STORAGE +// + +pref("browser.cache.offline.enable", false); +pref("offline-apps.allow_by_default", false); + +// +// SHUTDOWN +// + +pref("privacy.sanitize.sanitizeOnShutdown", true); +pref("privacy.clearOnShutdown.formdata", true); +pref("privacy.clearOnShutdown.offlineApps", true); +pref("privacy.clearOnShutdown.sessions", true); +pref("privacy.clearOnShutdown.siteSettings", false); +pref("privacy.cpd.cache", true); +pref("privacy.cpd.cookies", true); +pref("privacy.cpd.formdata", true); +pref("privacy.cpd.history", true); +pref("privacy.cpd.offlineApps", true); +pref("privacy.cpd.passwords", false); +pref("privacy.cpd.sessions", true); +pref("privacy.cpd.siteSettings", false); +pref("privacy.sanitize.timeSpan", 0); + +// +// ISOLATION +// + +pref("privacy.firstparty.isolate", true); +pref("privacy.firstparty.isolate.restrict_opener_access", true); +pref("browser.startup.blankWindow", false); + +// +// POCKET / HELLO +// + +pref("loop.enabled", false); +pref("loop.feedback.baseUrl", ""); +pref("loop.gettingStarted.url", ""); +pref("loop.learnMoreUrl", ""); +pref("loop.legal.ToS_url", ""); +pref("loop.legal.privacy_url", ""); +pref("loop.oauth.google.redirect_uri", ""); +pref("loop.oauth.google.scope", ""); +pref("loop.server", ""); +pref("loop.soft_start_hostname", ""); +pref("loop.support_url", ""); +pref("loop.throttled2", false); +pref("loop.logDomains", false); +pref("browser.pocket.enabled", false); +pref("browser.pocket.api", ""); +pref("browser.pocket.site", ""); +pref("browser.pocket.oAuthConsumerKey", ""); +pref("browser.pocket.useLocaleList", false); +pref("browser.pocket.enabledLocales", ""); diff --git a/extra/firefox/patches/firefox-71-no-accessibility.patch b/extra/firefox/patches/firefox-71-no-accessibility.patch new file mode 100644 index 00000000..b744c577 --- /dev/null +++ b/extra/firefox/patches/firefox-71-no-accessibility.patch @@ -0,0 +1,13 @@ +diff -r 22ced1a079e0 accessible/ipc/extension/other/moz.build +--- a/accessible/ipc/extension/other/moz.build Mon Sep 16 22:30:52 2019 +0300 ++++ b/accessible/ipc/extension/other/moz.build Tue Sep 17 23:17:02 2019 +0200 +@@ -9,7 +9,8 @@ + + IPDL_SOURCES += ['PDocAccessiblePlatformExt.ipdl'] + +-if CONFIG['ACCESSIBILITY']: ++#if CONFIG['ACCESSIBILITY']: ++if 1: + EXPORTS.mozilla.a11y += [ + 'DocAccessiblePlatformExtChild.h', + 'DocAccessiblePlatformExtParent.h', diff --git a/extra/firefox/patches/firefox-71-no-dbus.patch b/extra/firefox/patches/firefox-71-no-dbus.patch new file mode 100644 index 00000000..0dba95a9 --- /dev/null +++ b/extra/firefox/patches/firefox-71-no-dbus.patch @@ -0,0 +1,425 @@ +diff --git a/Cargo.lock b/Cargo.lock +index e0fd54008d..c8a3033238 100644 +--- a/Cargo.lock ++++ b/Cargo.lock +@@ -72,24 +72,10 @@ dependencies = [ + "winapi 0.3.6 (git+https://github.com/froydnj/winapi-rs?branch=aarch64)", + ] + +-[[package]] +-name = "audio_thread_priority" +-version = "0.20.2" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-dependencies = [ +- "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "dbus 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "mach 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.6 (git+https://github.com/froydnj/winapi-rs?branch=aarch64)", +-] +- + [[package]] + name = "audioipc" + version = "0.2.4" + dependencies = [ +- "audio_thread_priority 0.20.2 (registry+https://github.com/rust-lang/crates.io-index)", + "bincode 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", +@@ -117,7 +103,6 @@ dependencies = [ + name = "audioipc-client" + version = "0.4.0" + dependencies = [ +- "audio_thread_priority 0.20.2 (registry+https://github.com/rust-lang/crates.io-index)", + "audioipc 0.2.4", + "cubeb-backend 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.23 (registry+https://github.com/rust-lang/crates.io-index)", +@@ -130,7 +115,6 @@ dependencies = [ + name = "audioipc-server" + version = "0.2.3" + dependencies = [ +- "audio_thread_priority 0.20.2 (registry+https://github.com/rust-lang/crates.io-index)", + "audioipc 0.2.4", + "cubeb-core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", +@@ -837,15 +821,6 @@ dependencies = [ + "syn 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + ] + +-[[package]] +-name = "dbus" +-version = "0.6.4" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-dependencies = [ +- "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", +- "libdbus-sys 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +-] +- + [[package]] + name = "deflate" + version = "0.7.19" +@@ -1219,7 +1194,6 @@ name = "gkrust-shared" + version = "0.1.0" + dependencies = [ + "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "audio_thread_priority 0.20.2 (registry+https://github.com/rust-lang/crates.io-index)", + "audioipc-client 0.4.0", + "audioipc-server 0.2.3", + "authenticator 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", +@@ -1559,14 +1533,6 @@ name = "libc" + version = "0.2.60" + source = "registry+https://github.com/rust-lang/crates.io-index" + +-[[package]] +-name = "libdbus-sys" +-version = "0.1.5" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-dependencies = [ +- "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +-] +- + [[package]] + name = "libloading" + version = "0.5.0" +@@ -3811,7 +3777,6 @@ dependencies = [ + "checksum atomic 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c210c1f4db048cda477b652d170572d84c9640695835f17663595d3bd543fc28" + "checksum atomic_refcell 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fb2dcb6e6d35f20276943cc04bb98e538b348d525a04ac79c10021561d202f21" + "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" +-"checksum audio_thread_priority 0.20.2 (registry+https://github.com/rust-lang/crates.io-index)" = "197b2d259505d11c92d266e1784f01cc935eb764d2f54e16aedf4e5085197871" + "checksum authenticator 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ec149e5d5d4caa2c9ead53a8ce1ea9c4204c388c65bf3b96c2d1dc0fcf4aeb66" + "checksum autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "b671c8fb71b457dd4ae18c4ba1e59aa81793daacc361d82fcd410cef0d491875" + "checksum backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a" +@@ -3872,7 +3837,6 @@ dependencies = [ + "checksum darling 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3fe629a532efad5526454efb0700f86d5ad7ff001acb37e431c8bf017a432a8e" + "checksum darling_core 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ee54512bec54b41cf2337a22ddfadb53c7d4c738494dc2a186d7b037ad683b85" + "checksum darling_macro 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0cd3e432e52c0810b72898296a69d66b1d78d1517dff6cde7a130557a55a62c1" +-"checksum dbus 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b9e1b39f3f6aa3d4a1522c4f0f9f1e9e9167bd93740a8690874caa7cf8ce47d7" + "checksum deflate 0.7.19 (registry+https://github.com/rust-lang/crates.io-index)" = "8a6abb26e16e8d419b5c78662aa9f82857c2386a073da266840e474d5055ec86" + "checksum derive_more 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3f57d78cf3bd45270dad4e70c21ec77a960b36c7a841ff9db76aaa775a8fb871" + "checksum devd-rs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0d009f166c0d9e9f9909dc751630b3a6411ab7f85a153d32d01deb364ffe52a7" +@@ -3931,7 +3895,6 @@ dependencies = [ + "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" + "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" + "checksum libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)" = "d44e80633f007889c7eff624b709ab43c92d708caad982295768a7b13ca3b5eb" +-"checksum libdbus-sys 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "18cb88963258d00f4962205dbb5933d82780d9962c8c8a064b651d2ad7189210" + "checksum libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3ad660d7cb8c5822cd83d10897b0f1f1526792737a179e73896152f85b88c2" + "checksum libudev 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ea626d3bdf40a1c5aee3bcd4f40826970cae8d80a8fec934c82a63840094dcfe" + "checksum libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe" +diff --git a/dom/ipc/ContentChild.cpp b/dom/ipc/ContentChild.cpp +index 393fb53c02..15ddd2cf70 100644 +--- a/dom/ipc/ContentChild.cpp ++++ b/dom/ipc/ContentChild.cpp +@@ -107,9 +107,7 @@ + #include "nsIStringBundle.h" + #include "nsIWorkerDebuggerManager.h" + #include "nsGeolocation.h" +-#include "audio_thread_priority.h" + #include "nsIConsoleService.h" +-#include "audio_thread_priority.h" + + #if !defined(XP_WIN) + # include "mozilla/Omnijar.h" +@@ -1782,9 +1780,6 @@ mozilla::ipc::IPCResult ContentChild::RecvSetProcessSandbox( + } else { + // Pre-start audio before sandboxing; see bug 1443612. + if (Preferences::GetBool("media.cubeb.sandbox")) { +- if (atp_set_real_time_limit(0, 48000)) { +- NS_WARNING("could not set real-time limit at process startup"); +- } + InstallSoftRealTimeLimitHandler(); + } else { + Unused << CubebUtils::GetCubebContext(); +diff --git a/dom/media/GraphRunner.cpp b/dom/media/GraphRunner.cpp +index 8ff3391f4e..7a97faae76 100644 +--- a/dom/media/GraphRunner.cpp ++++ b/dom/media/GraphRunner.cpp +@@ -13,7 +13,6 @@ + #include "nsISupportsImpl.h" + #include "prthread.h" + #include "Tracing.h" +-#include "audio_thread_priority.h" + + namespace mozilla { + +@@ -93,9 +92,6 @@ bool GraphRunner::OneIteration(GraphTime aStateEnd) { + void GraphRunner::Run() { + PR_SetCurrentThreadName("GraphRunner"); + +- atp_handle* handle = +- atp_promote_current_thread_to_real_time(0, mGraph->GraphRate()); +- + MonitorAutoLock lock(mMonitor); + while (true) { + while (mThreadState == ThreadState::Wait) { +@@ -111,10 +107,6 @@ void GraphRunner::Run() { + mMonitor.Notify(); + } + +- if (handle) { +- atp_demote_current_thread_from_real_time(handle); +- } +- + dom::WorkletThread::DeleteCycleCollectedJSContext(); + } + +diff --git a/dom/media/UnderrunHandlerLinux.cpp b/dom/media/UnderrunHandlerLinux.cpp +index af5c84538e..23bf97a31f 100644 +--- a/dom/media/UnderrunHandlerLinux.cpp ++++ b/dom/media/UnderrunHandlerLinux.cpp +@@ -9,7 +9,6 @@ + + #include <mozilla/Sprintf.h> + #include <mozilla/Atomics.h> +-#include "audio_thread_priority.h" + + namespace mozilla { + +@@ -57,20 +56,6 @@ void InstallSoftRealTimeLimitHandler() { + } + + void DemoteThreadFromRealTime() { +- atp_thread_info* info = atp_get_current_thread_info(); +- if (!info) { +- NS_WARNING("Could not get current thread info when demoting thread."); +- return; +- } +- int rv = atp_demote_thread_from_real_time(info); +- if (rv) { +- NS_WARNING("Could not demote thread from real-time."); +- return; +- } +- rv = atp_free_thread_info(info); +- if (rv) { +- NS_WARNING("Could not free atp_thread_info struct"); +- } + gRealtimeLimitReached = false; + } + +diff --git a/dom/media/moz.build b/dom/media/moz.build +index 716c6a2322..840465f04a 100644 +--- a/dom/media/moz.build ++++ b/dom/media/moz.build +@@ -101,7 +101,6 @@ XPIDL_SOURCES += [ + XPIDL_MODULE = 'dom_media' + + EXPORTS += [ +- '../../third_party/rust/audio_thread_priority/audio_thread_priority.h', + 'ADTSDecoder.h', + 'ADTSDemuxer.h', + 'AsyncLogger.h', +diff --git a/media/audioipc/audioipc/Cargo.toml b/media/audioipc/audioipc/Cargo.toml +index 286e16789b..c34775cea1 100644 +--- a/media/audioipc/audioipc/Cargo.toml ++++ b/media/audioipc/audioipc/Cargo.toml +@@ -19,7 +19,6 @@ serde = "1.*.*" + serde_derive = "1.*.*" + tokio = "0.1" + tokio-io = "0.1" +-audio_thread_priority = "0.20.2" + + [target.'cfg(unix)'.dependencies] + iovec = "0.1" +diff --git a/media/audioipc/audioipc/src/messages.rs b/media/audioipc/audioipc/src/messages.rs +index 9a2ca4d59e..612e8d5050 100644 +--- a/media/audioipc/audioipc/src/messages.rs ++++ b/media/audioipc/audioipc/src/messages.rs +@@ -9,8 +9,6 @@ use cubeb::{self, ffi}; + use std::ffi::{CStr, CString}; + use std::os::raw::{c_char, c_int, c_uint}; + use std::ptr; +-#[cfg(target_os = "linux")] +-use audio_thread_priority::RtPriorityThreadInfo; + + #[derive(Debug, Serialize, Deserialize)] + pub struct Device { +@@ -209,9 +207,6 @@ pub enum ServerMessage { + StreamSetVolume(usize, f32), + StreamGetCurrentDevice(usize), + StreamRegisterDeviceChangeCallback(usize, bool), +- +- #[cfg(target_os = "linux")] +- PromoteThreadToRealTime([u8; std::mem::size_of::<RtPriorityThreadInfo>()]), + } + + // Server -> Client messages. +diff --git a/media/audioipc/client/Cargo.toml b/media/audioipc/client/Cargo.toml +index 866cde7e98..eaf9a62cc7 100644 +--- a/media/audioipc/client/Cargo.toml ++++ b/media/audioipc/client/Cargo.toml +@@ -9,7 +9,6 @@ description = "Cubeb Backend for talking to remote cubeb server." + edition = "2018" + + [dependencies] +-audio_thread_priority = "0.20.2" + audioipc = { path="../audioipc" } + cubeb-backend = "0.6.0" + futures = { version="0.1.18", default-features=false, features=["use_std"] } +diff --git a/media/audioipc/client/src/context.rs b/media/audioipc/client/src/context.rs +index c20e281248..e13dbc2d8d 100644 +--- a/media/audioipc/client/src/context.rs ++++ b/media/audioipc/client/src/context.rs +@@ -6,10 +6,6 @@ + use crate::{assert_not_in_callback, run_in_callback}; + use crate::stream; + use crate::{ClientStream, G_SERVER_FD, CPUPOOL_INIT_PARAMS}; +-#[cfg(not(target_os = "linux"))] +-use audio_thread_priority::promote_current_thread_to_real_time; +-#[cfg(target_os = "linux")] +-use audio_thread_priority::get_current_thread_info; + use audioipc::codec::LengthDelimitedCodec; + use audioipc::frame::{framed, Framed}; + use audioipc::platformhandle_passing::{framed_with_platformhandles, FramedWithPlatformHandles}; +@@ -91,34 +87,6 @@ fn open_server_stream() -> io::Result<audioipc::MessageStream> { + } + } + +-#[cfg(target_os = "linux")] +-fn promote_thread(rpc: &rpc::ClientProxy<ServerMessage, ClientMessage>) +-{ +- match get_current_thread_info() { +- Ok(info) => { +- let bytes = info.serialize(); +- // Don't wait for the response, this is on the callback thread, which must not block. +- rpc.call(ServerMessage::PromoteThreadToRealTime(bytes)); +- } +- Err(_) => { +- warn!("Could not remotely promote thread to RT."); +- } +- } +-} +- +-#[cfg(not(target_os = "linux"))] +-fn promote_thread(_rpc: &rpc::ClientProxy<ServerMessage, ClientMessage>) +-{ +- match promote_current_thread_to_real_time(0, 48000) { +- Ok(_) => { +- info!("Audio thread promoted to real-time."); +- } +- Err(_) => { +- warn!("Could not promote thread to real-time."); +- } +- } +-} +- + fn register_thread(callback: Option<extern "C" fn(*const ::std::os::raw::c_char)>) { + if let Some(func) = callback { + let thr = thread::current(); +@@ -127,12 +95,6 @@ fn register_thread(callback: Option<extern "C" fn(*const ::std::os::raw::c_char) + } + } + +-fn promote_and_register_thread(rpc: &rpc::ClientProxy<ServerMessage, ClientMessage>, +- callback: Option<extern "C" fn(*const ::std::os::raw::c_char)>) { +- promote_thread(rpc); +- register_thread(callback); +-} +- + #[derive(Default)] + struct DeviceCollectionCallback { + cb: ffi::cubeb_device_collection_changed_callback, +@@ -235,7 +197,6 @@ impl ContextOps for ClientContext { + + let cpu_pool = futures_cpupool::Builder::new() + .name_prefix("AudioIPC") +- .after_start(move || promote_and_register_thread(&rpc2, params.thread_create_callback)) + .pool_size(params.pool_size) + .stack_size(params.stack_size) + .create(); +diff --git a/media/audioipc/server/Cargo.toml b/media/audioipc/server/Cargo.toml +index 8a628e7090..31f23cbe78 100644 +--- a/media/audioipc/server/Cargo.toml ++++ b/media/audioipc/server/Cargo.toml +@@ -9,7 +9,6 @@ description = "Remote cubeb server" + edition = "2018" + + [dependencies] +-audio_thread_priority = "0.20.2" + audioipc = { path = "../audioipc" } + cubeb-core = "0.6.0" + futures = "0.1.18" +diff --git a/media/audioipc/server/src/lib.rs b/media/audioipc/server/src/lib.rs +index 63b373fe8f..75f8b99123 100644 +--- a/media/audioipc/server/src/lib.rs ++++ b/media/audioipc/server/src/lib.rs +@@ -11,7 +11,6 @@ extern crate log; + #[macro_use] + extern crate lazy_static; + +-use audio_thread_priority::promote_current_thread_to_real_time; + use audioipc::core; + use audioipc::platformhandle_passing::framed_with_platformhandles; + use audioipc::rpc; +@@ -64,12 +63,6 @@ fn run() -> Result<ServerWrapper> { + trace!("Starting up cubeb audio server event loop thread..."); + + let callback_thread = core::spawn_thread("AudioIPC Callback RPC", || { +- match promote_current_thread_to_real_time(0, 48000) { +- Ok(_) => {} +- Err(_) => { +- debug!("Failed to promote audio callback thread to real-time."); +- } +- } + trace!("Starting up cubeb audio callback event loop thread..."); + Ok(()) + }) +diff --git a/media/audioipc/server/src/server.rs b/media/audioipc/server/src/server.rs +index 3d98c8fed2..35fff91130 100644 +--- a/media/audioipc/server/src/server.rs ++++ b/media/audioipc/server/src/server.rs +@@ -30,8 +30,6 @@ use std::rc::Rc; + use std::{panic, slice}; + use tokio::reactor; + use tokio::runtime::current_thread; +-#[cfg(target_os = "linux")] +-use audio_thread_priority::{RtPriorityThreadInfo, promote_thread_to_real_time}; + + use crate::errors::*; + +@@ -521,21 +519,6 @@ impl CubebServer { + ) + .unwrap_or_else(error) + }, +- +- #[cfg(target_os = "linux")] +- ServerMessage::PromoteThreadToRealTime(thread_info) => { +- let info = RtPriorityThreadInfo::deserialize(thread_info); +- match promote_thread_to_real_time(info, 0, 48000) { +- Ok(_) => { +- info!("Promotion of content process thread to real-time OK"); +- } +- Err(_) => { +- warn!("Promotion of content process thread to real-time error"); +- } +- } +- ClientMessage::ThreadPromoted +- }, +- + }; + + trace!("process_msg: req={:?}, resp={:?}", msg, resp); +diff --git a/toolkit/library/rust/shared/Cargo.toml b/toolkit/library/rust/shared/Cargo.toml +index 190503e2ab..dd7f0a5234 100644 +--- a/toolkit/library/rust/shared/Cargo.toml ++++ b/toolkit/library/rust/shared/Cargo.toml +@@ -40,7 +40,6 @@ bitsdownload = { path = "../../../components/bitsdownload", optional = true } + storage = { path = "../../../../storage/rust" } + bookmark_sync = { path = "../../../components/places/bookmark_sync", optional = true } + shift_or_euc_c = "0.1.0" +-audio_thread_priority = "0.20.2" + mdns_service = { path="../../../../media/mtransport/mdns_service", optional = true } + + [build-dependencies] +diff --git a/toolkit/library/rust/shared/lib.rs b/toolkit/library/rust/shared/lib.rs +index f76f53436d..318f904703 100644 +--- a/toolkit/library/rust/shared/lib.rs ++++ b/toolkit/library/rust/shared/lib.rs +@@ -48,8 +48,6 @@ extern crate shift_or_euc_c; + + extern crate arrayvec; + +-extern crate audio_thread_priority; +- + #[cfg(feature = "webrtc")] + extern crate mdns_service; + diff --git a/extra/firefox/patches/fix-fortify-system-wrappers.patch b/extra/firefox/patches/fix-fortify-system-wrappers.patch new file mode 100644 index 00000000..17cf7e30 --- /dev/null +++ b/extra/firefox/patches/fix-fortify-system-wrappers.patch @@ -0,0 +1,13 @@ +The wrapper features.h gets pulled in by system headers causing thigns to +break. We work around it by simply not wrap features.h + +--- ./config/system-headers.mozbuild.orig ++++ ./config/system-headers.mozbuild +@@ -229,7 +229,6 @@ + 'execinfo.h', + 'extras.h', + 'fcntl.h', +- 'features.h', + 'fenv.h', + 'ffi.h', + 'fibdef.h', diff --git a/extra/firefox/patches/fix-sandbox-membarrier.patch b/extra/firefox/patches/fix-sandbox-membarrier.patch new file mode 100644 index 00000000..4bd3b80d --- /dev/null +++ b/extra/firefox/patches/fix-sandbox-membarrier.patch @@ -0,0 +1,54 @@ +allow usage of SYS_membarrier, needed since musl-1.1.22 + +Taken from voidlinux: https://github.com/void-linux/void-packages/commit/4198411ac3b9e2620e171c662df82008da0faebb + +--- a/security/sandbox/linux/SandboxFilter.cpp ++++ b/security/sandbox/linux/SandboxFilter.cpp +@@ -572,6 +572,8 @@ + case __NR_set_tid_address: + return Allow(); + #endif ++ case __NR_membarrier: ++ return Allow(); + + // prctl + case __NR_prctl: { + +--- a/security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h ++++ b/security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h +@@ -1385,6 +1385,10 @@ + #define __NR_memfd_create (__NR_SYSCALL_BASE+385) + #endif + ++#if !defined(__NR_membarrier) ++#define __NR_membarrier (__NR_SYSCALL_BASE+389) ++#endif ++ + // ARM private syscalls. + #if !defined(__ARM_NR_BASE) + #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0xF0000) + +--- a/security/sandbox/chromium/sandbox/linux/system_headers/x86_64_linux_syscalls.h ++++ b/security/sandbox/chromium/sandbox/linux/system_headers/x86_64_linux_syscalls.h +@@ -1290,5 +1290,9 @@ + #define __NR_memfd_create 319 + #endif + ++#if !defined(__NR_membarrier) ++#define __NR_membarrier 324 ++#endif ++ + #endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_64_LINUX_SYSCALLS_H_ + +--- a/security/sandbox/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h ++++ b/security/sandbox/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h +@@ -1490,5 +1490,9 @@ + #define __NR_shutdown 373 + #endif + ++#if !defined(__NR_membarrier) ++#define __NR_membarrier 375 ++#endif ++ + #endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_32_LINUX_SYSCALLS_H_ + diff --git a/extra/firefox/patches/fix-seccomp-bpf.patch b/extra/firefox/patches/fix-seccomp-bpf.patch new file mode 100644 index 00000000..da102b46 --- /dev/null +++ b/extra/firefox/patches/fix-seccomp-bpf.patch @@ -0,0 +1,14 @@ +--- a/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc ++++ b/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc +@@ -25,6 +25,11 @@ + #include "sandbox/linux/system_headers/linux_seccomp.h" + #include "sandbox/linux/system_headers/linux_signal.h" + ++// musl libc defines siginfo_t __si_fields instead of _sifields ++#if defined(OS_LINUX) && !defined(__GLIBC__) ++#define _sifields __si_fields ++#endif ++ + namespace { + + struct arch_sigsys { diff --git a/extra/firefox/patches/fix-toolkit.patch b/extra/firefox/patches/fix-toolkit.patch new file mode 100644 index 00000000..414734df --- /dev/null +++ b/extra/firefox/patches/fix-toolkit.patch @@ -0,0 +1,90 @@ +diff --git a/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc b/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc +index 4222ce3..4d40c6a 100644 +--- a/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc ++++ b/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc +@@ -46,6 +46,7 @@ + #include <sys/mman.h> + #include <sys/stat.h> + #include <unistd.h> ++#include <libgen.h> + + #include <iostream> + #include <set> +diff --git a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc +index 6019fc7..5953e32 100644 +--- a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc ++++ b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc +@@ -41,6 +41,10 @@ + + #include "common/using_std_string.h" + ++#ifndef N_UNDF ++#define N_UNDF 0 ++#endif ++ + using std::vector; + + namespace google_breakpad { +diff --git a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h +index 98ee2dd..d57aa68 100644 +--- a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h ++++ b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h +@@ -55,7 +55,7 @@ + + #ifdef HAVE_MACH_O_NLIST_H + #include <mach-o/nlist.h> +-#elif defined(HAVE_A_OUT_H) ++#elif 0 + #include <a.out.h> + #endif + +diff --git a/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h b/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h +index 93fdad7..f34e5e0 100644 +--- a/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h ++++ b/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h +@@ -1239,6 +1239,12 @@ struct kernel_statfs { + #ifndef __NR_fallocate + #define __NR_fallocate 285 + #endif ++ ++#undef __NR_pread ++#define __NR_pread __NR_pread64 ++#undef __NR_pwrite ++#define __NR_pwrite __NR_pwrite64 ++ + /* End of x86-64 definitions */ + #elif defined(__mips__) + #if _MIPS_SIM == _MIPS_SIM_ABI32 +diff --git a/toolkit/mozapps/update/common/updatedefines.h b/toolkit/mozapps/update/common/updatedefines.h +index 79276f7..4c67976 100644 +--- a/toolkit/mozapps/update/common/updatedefines.h ++++ b/toolkit/mozapps/update/common/updatedefines.h +@@ -87,7 +87,7 @@ static inline int mywcsprintf(WCHAR* dest, size_t count, const WCHAR* fmt, + + # ifdef SOLARIS + # include <sys/stat.h> +-# else ++# elif !defined(__linux__) || defined(__GLIBC__) + # include <fts.h> + # endif + # include <dirent.h> +diff --git a/toolkit/mozapps/update/updater/updater.cpp b/toolkit/mozapps/update/updater/updater.cpp +index 257ccb4..01314e4 100644 +--- a/toolkit/mozapps/update/updater/updater.cpp ++++ b/toolkit/mozapps/update/updater/updater.cpp +@@ -3978,6 +3978,7 @@ + + int add_dir_entries(const NS_tchar* dirpath, ActionList* list) { + int rv = OK; ++#if !defined(__linux__) || defined(__GLIBC__) + FTS* ftsdir; + FTSENT* ftsdirEntry; + mozilla::UniquePtr<NS_tchar[]> searchpath(get_full_path(dirpath)); +@@ -4085,6 +4086,7 @@ + } + + fts_close(ftsdir); ++#endif + + return rv; + } diff --git a/extra/firefox/patches/fix-tools.patch b/extra/firefox/patches/fix-tools.patch new file mode 100644 index 00000000..93b9d19c --- /dev/null +++ b/extra/firefox/patches/fix-tools.patch @@ -0,0 +1,37 @@ +diff --git a/tools/profiler/core/platform-linux-android.cpp b/tools/profiler/core/platform-linux-android.cpp +index 19d0a5c56d..b64b543066 100644 +--- a/tools/profiler/core/platform-linux-android.cpp ++++ b/tools/profiler/core/platform-linux-android.cpp +@@ -506,8 +506,10 @@ static void PlatformInit(PSLockRef aLock) {} + ucontext_t sSyncUContext; + + void Registers::SyncPopulate() { +- if (!getcontext(&sSyncUContext)) { +- PopulateRegsFromContext(*this, &sSyncUContext); +- } ++ #if defined(__GLIBC__) ++ if (!getcontext(&sSyncUContext)) { ++ PopulateRegsFromContext(*this, &sSyncUContext); ++ } ++ #endif + } + #endif +diff --git a/tools/profiler/lul/LulElf.cpp b/tools/profiler/lul/LulElf.cpp +index 9998d04d0d..348a7086fc 100644 +--- a/tools/profiler/lul/LulElf.cpp ++++ b/tools/profiler/lul/LulElf.cpp +@@ -469,10 +469,10 @@ string FormatIdentifier(unsigned char identifier[16]) { + // Return the non-directory portion of FILENAME: the portion after the + // last slash, or the whole filename if there are no slashes. + string BaseFileName(const string& filename) { +- // Lots of copies! basename's behavior is less than ideal. +- char* c_filename = strdup(filename.c_str()); +- string base = basename(c_filename); +- free(c_filename); ++ // basename's behavior is less than ideal so avoid it ++ const char *c_filename = filename.c_str(); ++ const char *p = strrchr(c_filename, '/'); ++ string base = p ? p+1 : c_filename; + return base; + } + diff --git a/extra/firefox/patches/fix-webrtc-glibcisms.patch b/extra/firefox/patches/fix-webrtc-glibcisms.patch new file mode 100644 index 00000000..658b076d --- /dev/null +++ b/extra/firefox/patches/fix-webrtc-glibcisms.patch @@ -0,0 +1,20 @@ +--- ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.orig 2018-05-09 23:48:44.677389171 +0200 ++++ ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c 2018-05-09 23:48:56.254373557 +0200 +@@ -14,7 +14,7 @@ + #ifndef __GLIBC_PREREQ + #define __GLIBC_PREREQ(a, b) 0 + #endif +-#if __GLIBC_PREREQ(2, 16) ++#if !__GLIBC__ || __GLIBC_PREREQ(2, 16) + #include <sys/auxv.h> + #else + #include <fcntl.h> +@@ -32,7 +32,7 @@ + int architecture = 0; + unsigned long hwcap = 0; + const char* platform = NULL; +-#if __GLIBC_PREREQ(2, 16) ++#if !__GLIBC__ || __GLIBC_PREREQ(2, 16) + hwcap = getauxval(AT_HWCAP); + platform = (const char*)getauxval(AT_PLATFORM); + #else diff --git a/extra/firefox/patches/mallinfo.patch b/extra/firefox/patches/mallinfo.patch new file mode 100644 index 00000000..0649413c --- /dev/null +++ b/extra/firefox/patches/mallinfo.patch @@ -0,0 +1,34 @@ +--- a/xpcom/base/nsMemoryReporterManager.cpp.orig 2019-03-19 17:12:20.844810044 +0100 ++++ b/xpcom/base/nsMemoryReporterManager.cpp 2019-03-19 17:13:32.505133615 +0100 +@@ -123,6 +123,7 @@ + return GetProcSelfSmapsPrivate(aN); + } + ++#ifdef __GLIBC__ + # ifdef HAVE_MALLINFO + # define HAVE_SYSTEM_HEAP_REPORTER 1 + static MOZ_MUST_USE nsresult SystemHeapSize(int64_t* aSizeOut) { +@@ -142,6 +143,7 @@ + return NS_OK; + } + # endif ++#endif // __GLIBC__ + + #elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || \ + defined(__OpenBSD__) || defined(__FreeBSD_kernel__) +@@ -642,6 +644,7 @@ + return NS_OK; + } + ++#ifdef __GLIBC__ + # define HAVE_SYSTEM_HEAP_REPORTER 1 + // Windows can have multiple separate heaps. During testing there were multiple + // heaps present but the non-default ones had sizes no more than a few 10s of +@@ -698,6 +701,7 @@ + *aSizeOut = heapsSize; + return NS_OK; + } ++#endif // __GLIBC__ + + struct SegmentKind { + DWORD mState; diff --git a/extra/firefox/sources b/extra/firefox/sources new file mode 100644 index 00000000..99c2a787 --- /dev/null +++ b/extra/firefox/sources @@ -0,0 +1,15 @@ +https://archive.mozilla.org/pub/firefox/candidates/71.0-candidates/build2/source/firefox-71.0.source.tar.xz +https://ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gz autoconf2.13/ +files/mozconfig +files/stab.h toolkit/crashreporter/google-breakpad/src/ +files/vendor.js +files/policies.json +patches/fix-fortify-system-wrappers.patch +patches/fix-sandbox-membarrier.patch +patches/fix-seccomp-bpf.patch +patches/fix-toolkit.patch +patches/fix-tools.patch +patches/fix-webrtc-glibcisms.patch +patches/mallinfo.patch +patches/firefox-71-no-dbus.patch +patches/firefox-71-no-accessibility.patch diff --git a/extra/firefox/version b/extra/firefox/version new file mode 100644 index 00000000..4f95e8e6 --- /dev/null +++ b/extra/firefox/version @@ -0,0 +1 @@ +71.0 1 diff --git a/extra/fribidi/build b/extra/fribidi/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/extra/fribidi/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/extra/fribidi/checksums b/extra/fribidi/checksums new file mode 100644 index 00000000..30209904 --- /dev/null +++ b/extra/fribidi/checksums @@ -0,0 +1 @@ +5ab5f21e9f2fc57b4b40f8ea8f14dba78a5cc46d9cf94bc5e00a58e6886a935d fribidi-1.0.7.tar.bz2 diff --git a/extra/fribidi/sources b/extra/fribidi/sources new file mode 100644 index 00000000..44e55b13 --- /dev/null +++ b/extra/fribidi/sources @@ -0,0 +1 @@ +https://github.com/fribidi/fribidi/releases/download/v1.0.7/fribidi-1.0.7.tar.bz2 diff --git a/extra/fribidi/version b/extra/fribidi/version new file mode 100644 index 00000000..5c9722cd --- /dev/null +++ b/extra/fribidi/version @@ -0,0 +1 @@ +1.0.7 1 diff --git a/extra/giflib/build b/extra/giflib/build new file mode 100755 index 00000000..431cc725 --- /dev/null +++ b/extra/giflib/build @@ -0,0 +1,4 @@ +#!/bin/sh -e + +make +make DESTDIR="$1" PREFIX=/usr install diff --git a/extra/giflib/checksums b/extra/giflib/checksums new file mode 100644 index 00000000..023118b3 --- /dev/null +++ b/extra/giflib/checksums @@ -0,0 +1 @@ +31da5562f44c5f15d63340a09a4fd62b48c45620cd302f77a6d9acf0077879bd giflib-5.2.1.tar.gz diff --git a/extra/giflib/sources b/extra/giflib/sources new file mode 100644 index 00000000..dc1326bc --- /dev/null +++ b/extra/giflib/sources @@ -0,0 +1 @@ +https://downloads.sourceforge.net/giflib/giflib-5.2.1.tar.gz diff --git a/extra/giflib/version b/extra/giflib/version new file mode 100644 index 00000000..a06ff620 --- /dev/null +++ b/extra/giflib/version @@ -0,0 +1 @@ +5.2.1 1 diff --git a/extra/glib/build b/extra/glib/build new file mode 100755 index 00000000..60f19b1f --- /dev/null +++ b/extra/glib/build @@ -0,0 +1,18 @@ +#!/bin/sh -e + +export DESTDIR="$1" + +# Remove 'libelf' dependency. +sed -i 's/if have_libelf/if not have_libelf/' gio/meson.build + +meson \ + --prefix=/usr \ + -Dman=false \ + -Dfam=false \ + . build + +ninja -C build +ninja -C build install + +# Purge gdbus. +rm -rf "$1/usr/bin/gdbus" diff --git a/extra/glib/checksums b/extra/glib/checksums new file mode 100644 index 00000000..05674c45 --- /dev/null +++ b/extra/glib/checksums @@ -0,0 +1 @@ +4400adc9f0d3ffcfe8e84225210370ce3f9853afb81812ddadb685325aa655c4 glib-2.62.3.tar.xz diff --git a/extra/glib/depends b/extra/glib/depends new file mode 100644 index 00000000..9612cfb2 --- /dev/null +++ b/extra/glib/depends @@ -0,0 +1,4 @@ +libffi +meson make +util-linux +zlib diff --git a/extra/glib/sources b/extra/glib/sources new file mode 100644 index 00000000..2d4e0fde --- /dev/null +++ b/extra/glib/sources @@ -0,0 +1 @@ +https://ftp.gnome.org/pub/gnome/sources/glib/2.62/glib-2.62.3.tar.xz diff --git a/extra/glib/version b/extra/glib/version new file mode 100644 index 00000000..9609cbd8 --- /dev/null +++ b/extra/glib/version @@ -0,0 +1 @@ +2.62.3 1 diff --git a/extra/gnupg1/build b/extra/gnupg1/build new file mode 100755 index 00000000..2f29dbb8 --- /dev/null +++ b/extra/gnupg1/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --enable-noexecstack + +make +make DESTDIR="$1" install diff --git a/extra/gnupg1/checksums b/extra/gnupg1/checksums new file mode 100644 index 00000000..e7ce497c --- /dev/null +++ b/extra/gnupg1/checksums @@ -0,0 +1 @@ +c9462f17e651b6507848c08c430c791287cd75491f8b5a8b50c6ed46b12678ba gnupg-1.4.23.tar.bz2 diff --git a/extra/gnupg1/depends b/extra/gnupg1/depends new file mode 100644 index 00000000..82362fae --- /dev/null +++ b/extra/gnupg1/depends @@ -0,0 +1,4 @@ +bzip2 +curl +libressl +zlib diff --git a/extra/gnupg1/sources b/extra/gnupg1/sources new file mode 100644 index 00000000..40bad2e7 --- /dev/null +++ b/extra/gnupg1/sources @@ -0,0 +1 @@ +https://gnupg.org/ftp/gcrypt/gnupg/gnupg-1.4.23.tar.bz2 diff --git a/extra/gnupg1/version b/extra/gnupg1/version new file mode 100644 index 00000000..53ea88f3 --- /dev/null +++ b/extra/gnupg1/version @@ -0,0 +1 @@ +1.4.23 1 diff --git a/extra/gperf/build b/extra/gperf/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/extra/gperf/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/extra/gperf/checksums b/extra/gperf/checksums new file mode 100644 index 00000000..96f73ecf --- /dev/null +++ b/extra/gperf/checksums @@ -0,0 +1 @@ +588546b945bba4b70b6a3a616e80b4ab466e3f33024a352fc2198112cdbb3ae2 gperf-3.1.tar.gz diff --git a/extra/gperf/sources b/extra/gperf/sources new file mode 100644 index 00000000..2ead637b --- /dev/null +++ b/extra/gperf/sources @@ -0,0 +1 @@ +https://ftp.gnu.org/gnu/gperf/gperf-3.1.tar.gz diff --git a/extra/gperf/version b/extra/gperf/version new file mode 100644 index 00000000..122d3a0a --- /dev/null +++ b/extra/gperf/version @@ -0,0 +1 @@ +3.1 3 diff --git a/extra/json-c/build b/extra/json-c/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/extra/json-c/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/extra/json-c/checksums b/extra/json-c/checksums new file mode 100644 index 00000000..19095f80 --- /dev/null +++ b/extra/json-c/checksums @@ -0,0 +1 @@ +b87e608d4d3f7bfdd36ef78d56d53c74e66ab278d318b71e6002a369d36f4873 json-c-0.13.1.tar.gz diff --git a/extra/json-c/depends b/extra/json-c/depends new file mode 100644 index 00000000..cf0a2427 --- /dev/null +++ b/extra/json-c/depends @@ -0,0 +1 @@ +automake diff --git a/extra/json-c/sources b/extra/json-c/sources new file mode 100644 index 00000000..1e88a0fd --- /dev/null +++ b/extra/json-c/sources @@ -0,0 +1 @@ +https://s3.amazonaws.com/json-c_releases/releases/json-c-0.13.1.tar.gz diff --git a/extra/json-c/version b/extra/json-c/version new file mode 100644 index 00000000..95070198 --- /dev/null +++ b/extra/json-c/version @@ -0,0 +1 @@ +0.13.1 1 diff --git a/extra/lame/build b/extra/lame/build new file mode 100755 index 00000000..10210baf --- /dev/null +++ b/extra/lame/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --enable-nasm \ + --enable-shared + +make +make DESTDIR="$1" install diff --git a/extra/lame/checksums b/extra/lame/checksums new file mode 100644 index 00000000..3b885b2e --- /dev/null +++ b/extra/lame/checksums @@ -0,0 +1 @@ +ddfe36cab873794038ae2c1210557ad34857a4b6bdc515785d1da9e175b1da1e lame-3.100.tar.gz diff --git a/extra/lame/depends b/extra/lame/depends new file mode 100644 index 00000000..116f6b27 --- /dev/null +++ b/extra/lame/depends @@ -0,0 +1 @@ +nasm make diff --git a/extra/lame/sources b/extra/lame/sources new file mode 100644 index 00000000..8cc28356 --- /dev/null +++ b/extra/lame/sources @@ -0,0 +1 @@ +https://downloads.sourceforge.net/lame/lame-3.100.tar.gz diff --git a/extra/lame/version b/extra/lame/version new file mode 100644 index 00000000..a8af8af4 --- /dev/null +++ b/extra/lame/version @@ -0,0 +1 @@ +3.100 2 diff --git a/extra/libaio/build b/extra/libaio/build new file mode 100755 index 00000000..133d511b --- /dev/null +++ b/extra/libaio/build @@ -0,0 +1,4 @@ +#!/bin/sh -e + +make +make prefix="$1/usr" install diff --git a/extra/libaio/checksums b/extra/libaio/checksums new file mode 100644 index 00000000..8494bb94 --- /dev/null +++ b/extra/libaio/checksums @@ -0,0 +1 @@ +ab0462f2c9d546683e5147b1ce9c195fe95d07fac5bf362f6c01637955c3b492 libaio-0.3.112.tar.gz diff --git a/extra/libaio/sources b/extra/libaio/sources new file mode 100644 index 00000000..08e538e1 --- /dev/null +++ b/extra/libaio/sources @@ -0,0 +1 @@ +https://releases.pagure.org/libaio/libaio-0.3.112.tar.gz diff --git a/extra/libaio/version b/extra/libaio/version new file mode 100644 index 00000000..267ccb33 --- /dev/null +++ b/extra/libaio/version @@ -0,0 +1 @@ +0.3.112 1 diff --git a/extra/libass/build b/extra/libass/build new file mode 100755 index 00000000..11938895 --- /dev/null +++ b/extra/libass/build @@ -0,0 +1,8 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --enable-fontconfig + +make +make DESTDIR="$1" install diff --git a/extra/libass/checksums b/extra/libass/checksums new file mode 100644 index 00000000..6a8bc2da --- /dev/null +++ b/extra/libass/checksums @@ -0,0 +1 @@ +881f2382af48aead75b7a0e02e65d88c5ebd369fe46bc77d9270a94aa8fd38a2 libass-0.14.0.tar.xz diff --git a/extra/libass/depends b/extra/libass/depends new file mode 100644 index 00000000..3b0ec96c --- /dev/null +++ b/extra/libass/depends @@ -0,0 +1,6 @@ +expat +fontconfig +freetype-harfbuzz +fribidi +pkgconf make +yasm make diff --git a/extra/libass/sources b/extra/libass/sources new file mode 100644 index 00000000..12135230 --- /dev/null +++ b/extra/libass/sources @@ -0,0 +1 @@ +https://github.com/libass/libass/releases/download/0.14.0/libass-0.14.0.tar.xz diff --git a/extra/libass/version b/extra/libass/version new file mode 100644 index 00000000..0f78dbcf --- /dev/null +++ b/extra/libass/version @@ -0,0 +1 @@ +0.14.0 1 diff --git a/extra/libffi/build b/extra/libffi/build new file mode 100755 index 00000000..b2747a3d --- /dev/null +++ b/extra/libffi/build @@ -0,0 +1,17 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --with-pic + +make +make DESTDIR="$1" install + +# Maintain compatibility and avoid the need +# for rebuilds of all packages linking to +# libffi. +# +# ABI incompatibility only affects AArch64. +# See: https://github.com/libffi/libffi/commit/c02c341 +# https://github.com/libffi/libffi/issues/528 +ln -s libffi.so.7 "$1/usr/lib/libffi.so.6" diff --git a/extra/libffi/checksums b/extra/libffi/checksums new file mode 100644 index 00000000..635bf88b --- /dev/null +++ b/extra/libffi/checksums @@ -0,0 +1 @@ +72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802885dc652056 libffi-3.3.tar.gz diff --git a/extra/libffi/sources b/extra/libffi/sources new file mode 100644 index 00000000..c4dceb60 --- /dev/null +++ b/extra/libffi/sources @@ -0,0 +1 @@ +https://sourceware.org/pub/libffi/libffi-3.3.tar.gz diff --git a/extra/libffi/version b/extra/libffi/version new file mode 100644 index 00000000..ef8da5d7 --- /dev/null +++ b/extra/libffi/version @@ -0,0 +1 @@ +3.3 1 diff --git a/extra/libjpeg-turbo/build b/extra/libjpeg-turbo/build new file mode 100755 index 00000000..650b25f5 --- /dev/null +++ b/extra/libjpeg-turbo/build @@ -0,0 +1,13 @@ +#!/bin/sh -e + +export DESTDIR="$1" + +cmake -B build \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=/usr/lib \ + -DCMAKE_SHARED_LIBS=True \ + -DCMAKE_BUILD_TYPE=Release \ + -DWITH_JPEG8=1 + +cmake --build build +cmake --install build diff --git a/extra/libjpeg-turbo/checksums b/extra/libjpeg-turbo/checksums new file mode 100644 index 00000000..6ad81b85 --- /dev/null +++ b/extra/libjpeg-turbo/checksums @@ -0,0 +1 @@ +a69598bf079463b34d45ca7268462a18b6507fdaa62bb1dfd212f02041499b5d 2.0.3.tar.gz diff --git a/extra/libjpeg-turbo/depends b/extra/libjpeg-turbo/depends new file mode 100644 index 00000000..ae4e5b53 --- /dev/null +++ b/extra/libjpeg-turbo/depends @@ -0,0 +1,2 @@ +cmake make +yasm make diff --git a/extra/libjpeg-turbo/sources b/extra/libjpeg-turbo/sources new file mode 100644 index 00000000..81eadb64 --- /dev/null +++ b/extra/libjpeg-turbo/sources @@ -0,0 +1 @@ +https://github.com/libjpeg-turbo/libjpeg-turbo/archive/2.0.3.tar.gz diff --git a/extra/libjpeg-turbo/version b/extra/libjpeg-turbo/version new file mode 100644 index 00000000..c103c3ec --- /dev/null +++ b/extra/libjpeg-turbo/version @@ -0,0 +1 @@ +2.0.3 1 diff --git a/extra/libogg/build b/extra/libogg/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/extra/libogg/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/extra/libogg/checksums b/extra/libogg/checksums new file mode 100644 index 00000000..6324e2ef --- /dev/null +++ b/extra/libogg/checksums @@ -0,0 +1 @@ +c163bc12bc300c401b6aa35907ac682671ea376f13ae0969a220f7ddf71893fe libogg-1.3.4.tar.xz diff --git a/extra/libogg/sources b/extra/libogg/sources new file mode 100644 index 00000000..6d21083e --- /dev/null +++ b/extra/libogg/sources @@ -0,0 +1 @@ +https://downloads.xiph.org/releases/ogg/libogg-1.3.4.tar.xz diff --git a/extra/libogg/version b/extra/libogg/version new file mode 100644 index 00000000..737bdf49 --- /dev/null +++ b/extra/libogg/version @@ -0,0 +1 @@ +1.3.4 1 diff --git a/extra/libpng/build b/extra/libpng/build new file mode 100755 index 00000000..5be67a84 --- /dev/null +++ b/extra/libpng/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +patch -p1 < libpng-1.6.37-apng.patch + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/extra/libpng/checksums b/extra/libpng/checksums new file mode 100644 index 00000000..d0278b60 --- /dev/null +++ b/extra/libpng/checksums @@ -0,0 +1,2 @@ +ca74a0dace179a8422187671aee97dd3892b53e168627145271cad5b5ac81307 v1.6.37.tar.gz +18b71dcd329af6ddb483cb6d145535861e04918f7eb95e8051545f0bbce7d517 libpng-1.6.37-apng.patch diff --git a/extra/libpng/depends b/extra/libpng/depends new file mode 100644 index 00000000..f22003e8 --- /dev/null +++ b/extra/libpng/depends @@ -0,0 +1 @@ +zlib diff --git a/extra/libpng/patches/libpng-1.6.37-apng.patch b/extra/libpng/patches/libpng-1.6.37-apng.patch new file mode 100644 index 00000000..8aaa50b9 --- /dev/null +++ b/extra/libpng/patches/libpng-1.6.37-apng.patch @@ -0,0 +1,1728 @@ +diff -Naru libpng-1.6.37.org/png.h libpng-1.6.37/png.h +--- libpng-1.6.37.org/png.h 2019-04-19 07:21:37.398024800 +0900 ++++ libpng-1.6.37/png.h 2019-04-19 07:22:37.871245630 +0900 +@@ -330,6 +330,10 @@ + # include "pnglibconf.h" + #endif + ++#define PNG_APNG_SUPPORTED ++#define PNG_READ_APNG_SUPPORTED ++#define PNG_WRITE_APNG_SUPPORTED ++ + #ifndef PNG_VERSION_INFO_ONLY + /* Machine specific configuration. */ + # include "pngconf.h" +@@ -425,6 +429,17 @@ + * See pngconf.h for base types that vary by machine/system + */ + ++#ifdef PNG_APNG_SUPPORTED ++/* dispose_op flags from inside fcTL */ ++#define PNG_DISPOSE_OP_NONE 0x00U ++#define PNG_DISPOSE_OP_BACKGROUND 0x01U ++#define PNG_DISPOSE_OP_PREVIOUS 0x02U ++ ++/* blend_op flags from inside fcTL */ ++#define PNG_BLEND_OP_SOURCE 0x00U ++#define PNG_BLEND_OP_OVER 0x01U ++#endif /* PNG_APNG_SUPPORTED */ ++ + /* This triggers a compiler error in png.c, if png.c and png.h + * do not agree upon the version number. + */ +@@ -746,6 +761,10 @@ + #define PNG_INFO_sCAL 0x4000U /* ESR, 1.0.6 */ + #define PNG_INFO_IDAT 0x8000U /* ESR, 1.0.6 */ + #define PNG_INFO_eXIf 0x10000U /* GR-P, 1.6.31 */ ++#ifdef PNG_APNG_SUPPORTED ++#define PNG_INFO_acTL 0x20000U ++#define PNG_INFO_fcTL 0x40000U ++#endif + + /* This is used for the transformation routines, as some of them + * change these values for the row. It also should enable using +@@ -783,6 +802,10 @@ + #ifdef PNG_PROGRESSIVE_READ_SUPPORTED + typedef PNG_CALLBACK(void, *png_progressive_info_ptr, (png_structp, png_infop)); + typedef PNG_CALLBACK(void, *png_progressive_end_ptr, (png_structp, png_infop)); ++#ifdef PNG_APNG_SUPPORTED ++typedef PNG_CALLBACK(void, *png_progressive_frame_ptr, (png_structp, ++ png_uint_32)); ++#endif + + /* The following callback receives png_uint_32 row_number, int pass for the + * png_bytep data of the row. When transforming an interlaced image the +@@ -3226,6 +3249,74 @@ + /******************************************************************************* + * END OF HARDWARE AND SOFTWARE OPTIONS + ******************************************************************************/ ++#ifdef PNG_APNG_SUPPORTED ++PNG_EXPORT(250, png_uint_32, png_get_acTL, (png_structp png_ptr, ++ png_infop info_ptr, png_uint_32 *num_frames, png_uint_32 *num_plays)); ++ ++PNG_EXPORT(251, png_uint_32, png_set_acTL, (png_structp png_ptr, ++ png_infop info_ptr, png_uint_32 num_frames, png_uint_32 num_plays)); ++ ++PNG_EXPORT(252, png_uint_32, png_get_num_frames, (png_structp png_ptr, ++ png_infop info_ptr)); ++ ++PNG_EXPORT(253, png_uint_32, png_get_num_plays, (png_structp png_ptr, ++ png_infop info_ptr)); ++ ++PNG_EXPORT(254, png_uint_32, png_get_next_frame_fcTL, ++ (png_structp png_ptr, png_infop info_ptr, png_uint_32 *width, ++ png_uint_32 *height, png_uint_32 *x_offset, png_uint_32 *y_offset, ++ png_uint_16 *delay_num, png_uint_16 *delay_den, png_byte *dispose_op, ++ png_byte *blend_op)); ++ ++PNG_EXPORT(255, png_uint_32, png_set_next_frame_fcTL, ++ (png_structp png_ptr, png_infop info_ptr, png_uint_32 width, ++ png_uint_32 height, png_uint_32 x_offset, png_uint_32 y_offset, ++ png_uint_16 delay_num, png_uint_16 delay_den, png_byte dispose_op, ++ png_byte blend_op)); ++ ++PNG_EXPORT(256, png_uint_32, png_get_next_frame_width, ++ (png_structp png_ptr, png_infop info_ptr)); ++PNG_EXPORT(257, png_uint_32, png_get_next_frame_height, ++ (png_structp png_ptr, png_infop info_ptr)); ++PNG_EXPORT(258, png_uint_32, png_get_next_frame_x_offset, ++ (png_structp png_ptr, png_infop info_ptr)); ++PNG_EXPORT(259, png_uint_32, png_get_next_frame_y_offset, ++ (png_structp png_ptr, png_infop info_ptr)); ++PNG_EXPORT(260, png_uint_16, png_get_next_frame_delay_num, ++ (png_structp png_ptr, png_infop info_ptr)); ++PNG_EXPORT(261, png_uint_16, png_get_next_frame_delay_den, ++ (png_structp png_ptr, png_infop info_ptr)); ++PNG_EXPORT(262, png_byte, png_get_next_frame_dispose_op, ++ (png_structp png_ptr, png_infop info_ptr)); ++PNG_EXPORT(263, png_byte, png_get_next_frame_blend_op, ++ (png_structp png_ptr, png_infop info_ptr)); ++PNG_EXPORT(264, png_byte, png_get_first_frame_is_hidden, ++ (png_structp png_ptr, png_infop info_ptr)); ++PNG_EXPORT(265, png_uint_32, png_set_first_frame_is_hidden, ++ (png_structp png_ptr, png_infop info_ptr, png_byte is_hidden)); ++ ++#ifdef PNG_READ_APNG_SUPPORTED ++PNG_EXPORT(266, void, png_read_frame_head, (png_structp png_ptr, ++ png_infop info_ptr)); ++#ifdef PNG_PROGRESSIVE_READ_SUPPORTED ++PNG_EXPORT(267, void, png_set_progressive_frame_fn, (png_structp png_ptr, ++ png_progressive_frame_ptr frame_info_fn, ++ png_progressive_frame_ptr frame_end_fn)); ++#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ ++#endif /* PNG_READ_APNG_SUPPORTED */ ++ ++#ifdef PNG_WRITE_APNG_SUPPORTED ++PNG_EXPORT(268, void, png_write_frame_head, (png_structp png_ptr, ++ png_infop info_ptr, png_bytepp row_pointers, ++ png_uint_32 width, png_uint_32 height, ++ png_uint_32 x_offset, png_uint_32 y_offset, ++ png_uint_16 delay_num, png_uint_16 delay_den, png_byte dispose_op, ++ png_byte blend_op)); ++ ++PNG_EXPORT(269, void, png_write_frame_tail, (png_structp png_ptr, ++ png_infop info_ptr)); ++#endif /* PNG_WRITE_APNG_SUPPORTED */ ++#endif /* PNG_APNG_SUPPORTED */ + + /* Maintainer: Put new public prototypes here ^, in libpng.3, in project + * defs, and in scripts/symbols.def. +@@ -3235,7 +3326,11 @@ + * one to use is one more than this.) + */ + #ifdef PNG_EXPORT_LAST_ORDINAL ++#ifdef PNG_APNG_SUPPORTED ++ PNG_EXPORT_LAST_ORDINAL(269); ++#else + PNG_EXPORT_LAST_ORDINAL(249); ++#endif /* PNG_APNG_SUPPORTED */ + #endif + + #ifdef __cplusplus +diff -Naru libpng-1.6.37.org/pngget.c libpng-1.6.37/pngget.c +--- libpng-1.6.37.org/pngget.c 2019-04-19 07:21:37.399024787 +0900 ++++ libpng-1.6.37/pngget.c 2019-04-19 07:22:37.850245901 +0900 +@@ -1246,4 +1246,166 @@ + # endif + #endif + ++#ifdef PNG_APNG_SUPPORTED ++png_uint_32 PNGAPI ++png_get_acTL(png_structp png_ptr, png_infop info_ptr, ++ png_uint_32 *num_frames, png_uint_32 *num_plays) ++{ ++ png_debug1(1, "in %s retrieval function", "acTL"); ++ ++ if (png_ptr != NULL && info_ptr != NULL && ++ (info_ptr->valid & PNG_INFO_acTL) && ++ num_frames != NULL && num_plays != NULL) ++ { ++ *num_frames = info_ptr->num_frames; ++ *num_plays = info_ptr->num_plays; ++ return (1); ++ } ++ ++ return (0); ++} ++ ++png_uint_32 PNGAPI ++png_get_num_frames(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_get_num_frames()"); ++ ++ if (png_ptr != NULL && info_ptr != NULL) ++ return (info_ptr->num_frames); ++ return (0); ++} ++ ++png_uint_32 PNGAPI ++png_get_num_plays(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_get_num_plays()"); ++ ++ if (png_ptr != NULL && info_ptr != NULL) ++ return (info_ptr->num_plays); ++ return (0); ++} ++ ++png_uint_32 PNGAPI ++png_get_next_frame_fcTL(png_structp png_ptr, png_infop info_ptr, ++ png_uint_32 *width, png_uint_32 *height, ++ png_uint_32 *x_offset, png_uint_32 *y_offset, ++ png_uint_16 *delay_num, png_uint_16 *delay_den, ++ png_byte *dispose_op, png_byte *blend_op) ++{ ++ png_debug1(1, "in %s retrieval function", "fcTL"); ++ ++ if (png_ptr != NULL && info_ptr != NULL && ++ (info_ptr->valid & PNG_INFO_fcTL) && ++ width != NULL && height != NULL && ++ x_offset != NULL && y_offset != NULL && ++ delay_num != NULL && delay_den != NULL && ++ dispose_op != NULL && blend_op != NULL) ++ { ++ *width = info_ptr->next_frame_width; ++ *height = info_ptr->next_frame_height; ++ *x_offset = info_ptr->next_frame_x_offset; ++ *y_offset = info_ptr->next_frame_y_offset; ++ *delay_num = info_ptr->next_frame_delay_num; ++ *delay_den = info_ptr->next_frame_delay_den; ++ *dispose_op = info_ptr->next_frame_dispose_op; ++ *blend_op = info_ptr->next_frame_blend_op; ++ return (1); ++ } ++ ++ return (0); ++} ++ ++png_uint_32 PNGAPI ++png_get_next_frame_width(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_get_next_frame_width()"); ++ ++ if (png_ptr != NULL && info_ptr != NULL) ++ return (info_ptr->next_frame_width); ++ return (0); ++} ++ ++png_uint_32 PNGAPI ++png_get_next_frame_height(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_get_next_frame_height()"); ++ ++ if (png_ptr != NULL && info_ptr != NULL) ++ return (info_ptr->next_frame_height); ++ return (0); ++} ++ ++png_uint_32 PNGAPI ++png_get_next_frame_x_offset(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_get_next_frame_x_offset()"); ++ ++ if (png_ptr != NULL && info_ptr != NULL) ++ return (info_ptr->next_frame_x_offset); ++ return (0); ++} ++ ++png_uint_32 PNGAPI ++png_get_next_frame_y_offset(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_get_next_frame_y_offset()"); ++ ++ if (png_ptr != NULL && info_ptr != NULL) ++ return (info_ptr->next_frame_y_offset); ++ return (0); ++} ++ ++png_uint_16 PNGAPI ++png_get_next_frame_delay_num(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_get_next_frame_delay_num()"); ++ ++ if (png_ptr != NULL && info_ptr != NULL) ++ return (info_ptr->next_frame_delay_num); ++ return (0); ++} ++ ++png_uint_16 PNGAPI ++png_get_next_frame_delay_den(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_get_next_frame_delay_den()"); ++ ++ if (png_ptr != NULL && info_ptr != NULL) ++ return (info_ptr->next_frame_delay_den); ++ return (0); ++} ++ ++png_byte PNGAPI ++png_get_next_frame_dispose_op(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_get_next_frame_dispose_op()"); ++ ++ if (png_ptr != NULL && info_ptr != NULL) ++ return (info_ptr->next_frame_dispose_op); ++ return (0); ++} ++ ++png_byte PNGAPI ++png_get_next_frame_blend_op(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_get_next_frame_blend_op()"); ++ ++ if (png_ptr != NULL && info_ptr != NULL) ++ return (info_ptr->next_frame_blend_op); ++ return (0); ++} ++ ++png_byte PNGAPI ++png_get_first_frame_is_hidden(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_first_frame_is_hidden()"); ++ ++ if (png_ptr != NULL) ++ return (png_byte)(png_ptr->apng_flags & PNG_FIRST_FRAME_HIDDEN); ++ ++ PNG_UNUSED(info_ptr) ++ ++ return 0; ++} ++#endif /* PNG_APNG_SUPPORTED */ + #endif /* READ || WRITE */ +diff -Naru libpng-1.6.37.org/pnginfo.h libpng-1.6.37/pnginfo.h +--- libpng-1.6.37.org/pnginfo.h 2019-04-19 07:21:37.399024787 +0900 ++++ libpng-1.6.37/pnginfo.h 2019-04-19 07:22:37.850245901 +0900 +@@ -263,5 +263,18 @@ + png_bytepp row_pointers; /* the image bits */ + #endif + ++#ifdef PNG_APNG_SUPPORTED ++ png_uint_32 num_frames; /* including default image */ ++ png_uint_32 num_plays; ++ png_uint_32 next_frame_width; ++ png_uint_32 next_frame_height; ++ png_uint_32 next_frame_x_offset; ++ png_uint_32 next_frame_y_offset; ++ png_uint_16 next_frame_delay_num; ++ png_uint_16 next_frame_delay_den; ++ png_byte next_frame_dispose_op; ++ png_byte next_frame_blend_op; ++#endif ++ + }; + #endif /* PNGINFO_H */ +diff -Naru libpng-1.6.37.org/pngpread.c libpng-1.6.37/pngpread.c +--- libpng-1.6.37.org/pngpread.c 2019-04-19 07:21:37.399024787 +0900 ++++ libpng-1.6.37/pngpread.c 2019-04-19 07:22:37.850245901 +0900 +@@ -195,6 +195,106 @@ + + chunk_name = png_ptr->chunk_name; + ++#ifdef PNG_READ_APNG_SUPPORTED ++ if (png_ptr->num_frames_read > 0 && ++ png_ptr->num_frames_read < info_ptr->num_frames) ++ { ++ if (chunk_name == png_IDAT) ++ { ++ /* Discard trailing IDATs for the first frame */ ++ if (png_ptr->mode & PNG_HAVE_fcTL || png_ptr->num_frames_read > 1) ++ png_error(png_ptr, "out of place IDAT"); ++ ++ if (png_ptr->push_length + 4 > png_ptr->buffer_size) ++ { ++ png_push_save_buffer(png_ptr); ++ return; ++ } ++ ++ png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER; ++ return; ++ } ++ else if (chunk_name == png_fdAT) ++ { ++ if (png_ptr->buffer_size < 4) ++ { ++ png_push_save_buffer(png_ptr); ++ return; ++ } ++ ++ png_ensure_sequence_number(png_ptr, 4); ++ ++ if (!(png_ptr->mode & PNG_HAVE_fcTL)) ++ { ++ /* Discard trailing fdATs for frames other than the first */ ++ if (png_ptr->num_frames_read < 2) ++ png_error(png_ptr, "out of place fdAT"); ++ ++ if (png_ptr->push_length + 4 > png_ptr->buffer_size) ++ { ++ png_push_save_buffer(png_ptr); ++ return; ++ } ++ ++ png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER; ++ return; ++ } ++ ++ else ++ { ++ /* frame data follows */ ++ png_ptr->idat_size = png_ptr->push_length - 4; ++ png_ptr->mode |= PNG_HAVE_IDAT; ++ png_ptr->process_mode = PNG_READ_IDAT_MODE; ++ ++ return; ++ } ++ } ++ ++ else if (chunk_name == png_fcTL) ++ { ++ if (png_ptr->push_length + 4 > png_ptr->buffer_size) ++ { ++ png_push_save_buffer(png_ptr); ++ return; ++ } ++ ++ png_read_reset(png_ptr); ++ png_ptr->mode &= ~PNG_HAVE_fcTL; ++ ++ png_handle_fcTL(png_ptr, info_ptr, png_ptr->push_length); ++ ++ if (!(png_ptr->mode & PNG_HAVE_fcTL)) ++ png_error(png_ptr, "missing required fcTL chunk"); ++ ++ png_read_reinit(png_ptr, info_ptr); ++ png_progressive_read_reset(png_ptr); ++ ++ if (png_ptr->frame_info_fn != NULL) ++ (*(png_ptr->frame_info_fn))(png_ptr, png_ptr->num_frames_read); ++ ++ png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER; ++ ++ return; ++ } ++ ++ else ++ { ++ if (png_ptr->push_length + 4 > png_ptr->buffer_size) ++ { ++ png_push_save_buffer(png_ptr); ++ return; ++ } ++ png_warning(png_ptr, "Skipped (ignored) a chunk " ++ "between APNG chunks"); ++ png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER; ++ return; ++ } ++ ++ return; ++ } ++#endif /* PNG_READ_APNG_SUPPORTED */ ++ + if (chunk_name == png_IDAT) + { + if ((png_ptr->mode & PNG_AFTER_IDAT) != 0) +@@ -261,6 +361,9 @@ + + else if (chunk_name == png_IDAT) + { ++#ifdef PNG_READ_APNG_SUPPORTED ++ png_have_info(png_ptr, info_ptr); ++#endif + png_ptr->idat_size = png_ptr->push_length; + png_ptr->process_mode = PNG_READ_IDAT_MODE; + png_push_have_info(png_ptr, info_ptr); +@@ -406,6 +509,30 @@ + png_handle_iTXt(png_ptr, info_ptr, png_ptr->push_length); + } + #endif ++#ifdef PNG_READ_APNG_SUPPORTED ++ else if (chunk_name == png_acTL) ++ { ++ if (png_ptr->push_length + 4 > png_ptr->buffer_size) ++ { ++ png_push_save_buffer(png_ptr); ++ return; ++ } ++ ++ png_handle_acTL(png_ptr, info_ptr, png_ptr->push_length); ++ } ++ ++ else if (chunk_name == png_fcTL) ++ { ++ if (png_ptr->push_length + 4 > png_ptr->buffer_size) ++ { ++ png_push_save_buffer(png_ptr); ++ return; ++ } ++ ++ png_handle_fcTL(png_ptr, info_ptr, png_ptr->push_length); ++ } ++ ++#endif /* PNG_READ_APNG_SUPPORTED */ + + else + { +@@ -539,7 +666,11 @@ + png_byte chunk_tag[4]; + + /* TODO: this code can be commoned up with the same code in push_read */ ++#ifdef PNG_READ_APNG_SUPPORTED ++ PNG_PUSH_SAVE_BUFFER_IF_LT(12) ++#else + PNG_PUSH_SAVE_BUFFER_IF_LT(8) ++#endif + png_push_fill_buffer(png_ptr, chunk_length, 4); + png_ptr->push_length = png_get_uint_31(png_ptr, chunk_length); + png_reset_crc(png_ptr); +@@ -547,17 +678,64 @@ + png_ptr->chunk_name = PNG_CHUNK_FROM_STRING(chunk_tag); + png_ptr->mode |= PNG_HAVE_CHUNK_HEADER; + ++#ifdef PNG_READ_APNG_SUPPORTED ++ if (png_ptr->chunk_name != png_fdAT && png_ptr->num_frames_read > 0) ++ { ++ if (png_ptr->flags & PNG_FLAG_ZSTREAM_ENDED) ++ { ++ png_ptr->process_mode = PNG_READ_CHUNK_MODE; ++ if (png_ptr->frame_end_fn != NULL) ++ (*(png_ptr->frame_end_fn))(png_ptr, png_ptr->num_frames_read); ++ png_ptr->num_frames_read++; ++ return; ++ } ++ else ++ { ++ if (png_ptr->chunk_name == png_IEND) ++ png_error(png_ptr, "Not enough image data"); ++ if (png_ptr->push_length + 4 > png_ptr->buffer_size) ++ { ++ png_push_save_buffer(png_ptr); ++ return; ++ } ++ png_warning(png_ptr, "Skipping (ignoring) a chunk between " ++ "APNG chunks"); ++ png_crc_finish(png_ptr, png_ptr->push_length); ++ png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER; ++ return; ++ } ++ } ++ else ++#endif ++#ifdef PNG_READ_APNG_SUPPORTED ++ if (png_ptr->chunk_name != png_IDAT && png_ptr->num_frames_read == 0) ++#else + if (png_ptr->chunk_name != png_IDAT) ++#endif + { + png_ptr->process_mode = PNG_READ_CHUNK_MODE; + + if ((png_ptr->flags & PNG_FLAG_ZSTREAM_ENDED) == 0) + png_error(png_ptr, "Not enough compressed data"); + ++#ifdef PNG_READ_APNG_SUPPORTED ++ if (png_ptr->frame_end_fn != NULL) ++ (*(png_ptr->frame_end_fn))(png_ptr, png_ptr->num_frames_read); ++ png_ptr->num_frames_read++; ++#endif ++ + return; + } + + png_ptr->idat_size = png_ptr->push_length; ++ ++#ifdef PNG_READ_APNG_SUPPORTED ++ if (png_ptr->num_frames_read > 0) ++ { ++ png_ensure_sequence_number(png_ptr, 4); ++ png_ptr->idat_size -= 4; ++ } ++#endif + } + + if (png_ptr->idat_size != 0 && png_ptr->save_buffer_size != 0) +@@ -631,6 +809,15 @@ + if (!(buffer_length > 0) || buffer == NULL) + png_error(png_ptr, "No IDAT data (internal error)"); + ++#ifdef PNG_READ_APNG_SUPPORTED ++ /* If the app is not APNG-aware, decode only the first frame */ ++ if (!(png_ptr->apng_flags & PNG_APNG_APP) && png_ptr->num_frames_read > 0) ++ { ++ png_ptr->flags |= PNG_FLAG_ZSTREAM_ENDED; ++ return; ++ } ++#endif ++ + /* This routine must process all the data it has been given + * before returning, calling the row callback as required to + * handle the uncompressed results. +@@ -1085,6 +1272,18 @@ + png_set_read_fn(png_ptr, progressive_ptr, png_push_fill_buffer); + } + ++#ifdef PNG_READ_APNG_SUPPORTED ++void PNGAPI ++png_set_progressive_frame_fn(png_structp png_ptr, ++ png_progressive_frame_ptr frame_info_fn, ++ png_progressive_frame_ptr frame_end_fn) ++{ ++ png_ptr->frame_info_fn = frame_info_fn; ++ png_ptr->frame_end_fn = frame_end_fn; ++ png_ptr->apng_flags |= PNG_APNG_APP; ++} ++#endif ++ + png_voidp PNGAPI + png_get_progressive_ptr(png_const_structrp png_ptr) + { +diff -Naru libpng-1.6.37.org/pngpriv.h libpng-1.6.37/pngpriv.h +--- libpng-1.6.37.org/pngpriv.h 2019-04-19 07:21:37.399024787 +0900 ++++ libpng-1.6.37/pngpriv.h 2019-04-19 07:22:37.850245901 +0900 +@@ -637,6 +637,10 @@ + #define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000U /* Have another chunk after IDAT */ + /* 0x4000U (unused) */ + #define PNG_IS_READ_STRUCT 0x8000U /* Else is a write struct */ ++#ifdef PNG_APNG_SUPPORTED ++#define PNG_HAVE_acTL 0x10000U ++#define PNG_HAVE_fcTL 0x20000U ++#endif + + /* Flags for the transformations the PNG library does on the image data */ + #define PNG_BGR 0x0001U +@@ -873,6 +877,16 @@ + #define png_tRNS PNG_U32(116, 82, 78, 83) + #define png_zTXt PNG_U32(122, 84, 88, 116) + ++#ifdef PNG_APNG_SUPPORTED ++#define png_acTL PNG_U32( 97, 99, 84, 76) ++#define png_fcTL PNG_U32(102, 99, 84, 76) ++#define png_fdAT PNG_U32(102, 100, 65, 84) ++ ++/* For png_struct.apng_flags: */ ++#define PNG_FIRST_FRAME_HIDDEN 0x0001U ++#define PNG_APNG_APP 0x0002U ++#endif ++ + /* The following will work on (signed char*) strings, whereas the get_uint_32 + * macro will fail on top-bit-set values because of the sign extension. + */ +@@ -1644,6 +1658,47 @@ + */ + #endif + ++#ifdef PNG_APNG_SUPPORTED ++PNG_INTERNAL_FUNCTION(void,png_ensure_fcTL_is_valid,(png_structp png_ptr, ++ png_uint_32 width, png_uint_32 height, ++ png_uint_32 x_offset, png_uint_32 y_offset, ++ png_uint_16 delay_num, png_uint_16 delay_den, ++ png_byte dispose_op, png_byte blend_op), PNG_EMPTY); ++ ++#ifdef PNG_READ_APNG_SUPPORTED ++PNG_INTERNAL_FUNCTION(void,png_handle_acTL,(png_structp png_ptr, png_infop info_ptr, ++ png_uint_32 length),PNG_EMPTY); ++PNG_INTERNAL_FUNCTION(void,png_handle_fcTL,(png_structp png_ptr, png_infop info_ptr, ++ png_uint_32 length),PNG_EMPTY); ++PNG_INTERNAL_FUNCTION(void,png_handle_fdAT,(png_structp png_ptr, png_infop info_ptr, ++ png_uint_32 length),PNG_EMPTY); ++PNG_INTERNAL_FUNCTION(void,png_have_info,(png_structp png_ptr, png_infop info_ptr),PNG_EMPTY); ++PNG_INTERNAL_FUNCTION(void,png_ensure_sequence_number,(png_structp png_ptr, ++ png_uint_32 length),PNG_EMPTY); ++PNG_INTERNAL_FUNCTION(void,png_read_reset,(png_structp png_ptr),PNG_EMPTY); ++PNG_INTERNAL_FUNCTION(void,png_read_reinit,(png_structp png_ptr, ++ png_infop info_ptr),PNG_EMPTY); ++#ifdef PNG_PROGRESSIVE_READ_SUPPORTED ++PNG_INTERNAL_FUNCTION(void,png_progressive_read_reset,(png_structp png_ptr),PNG_EMPTY); ++#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ ++#endif /* PNG_READ_APNG_SUPPORTED */ ++ ++#ifdef PNG_WRITE_APNG_SUPPORTED ++PNG_INTERNAL_FUNCTION(void,png_write_acTL,(png_structp png_ptr, ++ png_uint_32 num_frames, png_uint_32 num_plays),PNG_EMPTY); ++PNG_INTERNAL_FUNCTION(void,png_write_fcTL,(png_structp png_ptr, ++ png_uint_32 width, png_uint_32 height, ++ png_uint_32 x_offset, png_uint_32 y_offset, ++ png_uint_16 delay_num, png_uint_16 delay_den, ++ png_byte dispose_op, png_byte blend_op),PNG_EMPTY); ++PNG_INTERNAL_FUNCTION(void,png_write_fdAT,(png_structp png_ptr, ++ png_const_bytep data, png_size_t length),PNG_EMPTY); ++PNG_INTERNAL_FUNCTION(void,png_write_reset,(png_structp png_ptr),PNG_EMPTY); ++PNG_INTERNAL_FUNCTION(void,png_write_reinit,(png_structp png_ptr, ++ png_infop info_ptr, png_uint_32 width, png_uint_32 height),PNG_EMPTY); ++#endif /* PNG_WRITE_APNG_SUPPORTED */ ++#endif /* PNG_APNG_SUPPORTED */ ++ + /* Added at libpng version 1.4.0 */ + #ifdef PNG_COLORSPACE_SUPPORTED + /* These internal functions are for maintaining the colorspace structure within +diff -Naru libpng-1.6.37.org/pngread.c libpng-1.6.37/pngread.c +--- libpng-1.6.37.org/pngread.c 2019-04-19 07:21:37.400024774 +0900 ++++ libpng-1.6.37/pngread.c 2019-04-19 07:22:37.851245887 +0900 +@@ -161,6 +161,9 @@ + + else if (chunk_name == png_IDAT) + { ++#ifdef PNG_READ_APNG_SUPPORTED ++ png_have_info(png_ptr, info_ptr); ++#endif + png_ptr->idat_size = length; + break; + } +@@ -255,6 +258,17 @@ + png_handle_iTXt(png_ptr, info_ptr, length); + #endif + ++#ifdef PNG_READ_APNG_SUPPORTED ++ else if (chunk_name == png_acTL) ++ png_handle_acTL(png_ptr, info_ptr, length); ++ ++ else if (chunk_name == png_fcTL) ++ png_handle_fcTL(png_ptr, info_ptr, length); ++ ++ else if (chunk_name == png_fdAT) ++ png_handle_fdAT(png_ptr, info_ptr, length); ++#endif ++ + else + png_handle_unknown(png_ptr, info_ptr, length, + PNG_HANDLE_CHUNK_AS_DEFAULT); +@@ -262,6 +276,72 @@ + } + #endif /* SEQUENTIAL_READ */ + ++#ifdef PNG_READ_APNG_SUPPORTED ++void PNGAPI ++png_read_frame_head(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_byte have_chunk_after_DAT; /* after IDAT or after fdAT */ ++ ++ png_debug(0, "Reading frame head"); ++ ++ if (!(png_ptr->mode & PNG_HAVE_acTL)) ++ png_error(png_ptr, "attempt to png_read_frame_head() but " ++ "no acTL present"); ++ ++ /* do nothing for the main IDAT */ ++ if (png_ptr->num_frames_read == 0) ++ return; ++ ++ png_read_reset(png_ptr); ++ png_ptr->flags &= ~PNG_FLAG_ROW_INIT; ++ png_ptr->mode &= ~PNG_HAVE_fcTL; ++ ++ have_chunk_after_DAT = 0; ++ for (;;) ++ { ++ png_uint_32 length = png_read_chunk_header(png_ptr); ++ ++ if (png_ptr->chunk_name == png_IDAT) ++ { ++ /* discard trailing IDATs for the first frame */ ++ if (have_chunk_after_DAT || png_ptr->num_frames_read > 1) ++ png_error(png_ptr, "png_read_frame_head(): out of place IDAT"); ++ png_crc_finish(png_ptr, length); ++ } ++ ++ else if (png_ptr->chunk_name == png_fcTL) ++ { ++ png_handle_fcTL(png_ptr, info_ptr, length); ++ have_chunk_after_DAT = 1; ++ } ++ ++ else if (png_ptr->chunk_name == png_fdAT) ++ { ++ png_ensure_sequence_number(png_ptr, length); ++ ++ /* discard trailing fdATs for frames other than the first */ ++ if (!have_chunk_after_DAT && png_ptr->num_frames_read > 1) ++ png_crc_finish(png_ptr, length - 4); ++ else if(png_ptr->mode & PNG_HAVE_fcTL) ++ { ++ png_ptr->idat_size = length - 4; ++ png_ptr->mode |= PNG_HAVE_IDAT; ++ ++ break; ++ } ++ else ++ png_error(png_ptr, "png_read_frame_head(): out of place fdAT"); ++ } ++ else ++ { ++ png_warning(png_ptr, "Skipped (ignored) a chunk " ++ "between APNG chunks"); ++ png_crc_finish(png_ptr, length); ++ } ++ } ++} ++#endif /* PNG_READ_APNG_SUPPORTED */ ++ + /* Optional call to update the users info_ptr structure */ + void PNGAPI + png_read_update_info(png_structrp png_ptr, png_inforp info_ptr) +diff -Naru libpng-1.6.37.org/pngrutil.c libpng-1.6.37/pngrutil.c +--- libpng-1.6.37.org/pngrutil.c 2019-04-19 07:21:37.401024761 +0900 ++++ libpng-1.6.37/pngrutil.c 2019-04-19 07:22:37.853245862 +0900 +@@ -865,6 +865,11 @@ + filter_type = buf[11]; + interlace_type = buf[12]; + ++#ifdef PNG_READ_APNG_SUPPORTED ++ png_ptr->first_frame_width = width; ++ png_ptr->first_frame_height = height; ++#endif ++ + /* Set internal variables */ + png_ptr->width = width; + png_ptr->height = height; +@@ -2857,6 +2862,179 @@ + } + #endif + ++#ifdef PNG_READ_APNG_SUPPORTED ++void /* PRIVATE */ ++png_handle_acTL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) ++{ ++ png_byte data[8]; ++ png_uint_32 num_frames; ++ png_uint_32 num_plays; ++ png_uint_32 didSet; ++ ++ png_debug(1, "in png_handle_acTL"); ++ ++ if (!(png_ptr->mode & PNG_HAVE_IHDR)) ++ { ++ png_error(png_ptr, "Missing IHDR before acTL"); ++ } ++ else if (png_ptr->mode & PNG_HAVE_IDAT) ++ { ++ png_warning(png_ptr, "Invalid acTL after IDAT skipped"); ++ png_crc_finish(png_ptr, length); ++ return; ++ } ++ else if (png_ptr->mode & PNG_HAVE_acTL) ++ { ++ png_warning(png_ptr, "Duplicate acTL skipped"); ++ png_crc_finish(png_ptr, length); ++ return; ++ } ++ else if (length != 8) ++ { ++ png_warning(png_ptr, "acTL with invalid length skipped"); ++ png_crc_finish(png_ptr, length); ++ return; ++ } ++ ++ png_crc_read(png_ptr, data, 8); ++ png_crc_finish(png_ptr, 0); ++ ++ num_frames = png_get_uint_31(png_ptr, data); ++ num_plays = png_get_uint_31(png_ptr, data + 4); ++ ++ /* the set function will do error checking on num_frames */ ++ didSet = png_set_acTL(png_ptr, info_ptr, num_frames, num_plays); ++ if(didSet) ++ png_ptr->mode |= PNG_HAVE_acTL; ++} ++ ++void /* PRIVATE */ ++png_handle_fcTL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) ++{ ++ png_byte data[22]; ++ png_uint_32 width; ++ png_uint_32 height; ++ png_uint_32 x_offset; ++ png_uint_32 y_offset; ++ png_uint_16 delay_num; ++ png_uint_16 delay_den; ++ png_byte dispose_op; ++ png_byte blend_op; ++ ++ png_debug(1, "in png_handle_fcTL"); ++ ++ png_ensure_sequence_number(png_ptr, length); ++ ++ if (!(png_ptr->mode & PNG_HAVE_IHDR)) ++ { ++ png_error(png_ptr, "Missing IHDR before fcTL"); ++ } ++ else if (png_ptr->mode & PNG_HAVE_IDAT) ++ { ++ /* for any frames other then the first this message may be misleading, ++ * but correct. PNG_HAVE_IDAT is unset before the frame head is read ++ * i can't think of a better message */ ++ png_warning(png_ptr, "Invalid fcTL after IDAT skipped"); ++ png_crc_finish(png_ptr, length-4); ++ return; ++ } ++ else if (png_ptr->mode & PNG_HAVE_fcTL) ++ { ++ png_warning(png_ptr, "Duplicate fcTL within one frame skipped"); ++ png_crc_finish(png_ptr, length-4); ++ return; ++ } ++ else if (length != 26) ++ { ++ png_warning(png_ptr, "fcTL with invalid length skipped"); ++ png_crc_finish(png_ptr, length-4); ++ return; ++ } ++ ++ png_crc_read(png_ptr, data, 22); ++ png_crc_finish(png_ptr, 0); ++ ++ width = png_get_uint_31(png_ptr, data); ++ height = png_get_uint_31(png_ptr, data + 4); ++ x_offset = png_get_uint_31(png_ptr, data + 8); ++ y_offset = png_get_uint_31(png_ptr, data + 12); ++ delay_num = png_get_uint_16(data + 16); ++ delay_den = png_get_uint_16(data + 18); ++ dispose_op = data[20]; ++ blend_op = data[21]; ++ ++ if (png_ptr->num_frames_read == 0 && (x_offset != 0 || y_offset != 0)) ++ { ++ png_warning(png_ptr, "fcTL for the first frame must have zero offset"); ++ return; ++ } ++ ++ if (info_ptr != NULL) ++ { ++ if (png_ptr->num_frames_read == 0 && ++ (width != info_ptr->width || height != info_ptr->height)) ++ { ++ png_warning(png_ptr, "size in first frame's fcTL must match " ++ "the size in IHDR"); ++ return; ++ } ++ ++ /* The set function will do more error checking */ ++ png_set_next_frame_fcTL(png_ptr, info_ptr, width, height, ++ x_offset, y_offset, delay_num, delay_den, ++ dispose_op, blend_op); ++ ++ png_read_reinit(png_ptr, info_ptr); ++ ++ png_ptr->mode |= PNG_HAVE_fcTL; ++ } ++} ++ ++void /* PRIVATE */ ++png_have_info(png_structp png_ptr, png_infop info_ptr) ++{ ++ if((info_ptr->valid & PNG_INFO_acTL) && !(info_ptr->valid & PNG_INFO_fcTL)) ++ { ++ png_ptr->apng_flags |= PNG_FIRST_FRAME_HIDDEN; ++ info_ptr->num_frames++; ++ } ++} ++ ++void /* PRIVATE */ ++png_handle_fdAT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) ++{ ++ png_ensure_sequence_number(png_ptr, length); ++ ++ /* This function is only called from png_read_end(), png_read_info(), ++ * and png_push_read_chunk() which means that: ++ * - the user doesn't want to read this frame ++ * - or this is an out-of-place fdAT ++ * in either case it is safe to ignore the chunk with a warning */ ++ png_warning(png_ptr, "ignoring fdAT chunk"); ++ png_crc_finish(png_ptr, length - 4); ++ PNG_UNUSED(info_ptr) ++} ++ ++void /* PRIVATE */ ++png_ensure_sequence_number(png_structp png_ptr, png_uint_32 length) ++{ ++ png_byte data[4]; ++ png_uint_32 sequence_number; ++ ++ if (length < 4) ++ png_error(png_ptr, "invalid fcTL or fdAT chunk found"); ++ ++ png_crc_read(png_ptr, data, 4); ++ sequence_number = png_get_uint_31(png_ptr, data); ++ ++ if (sequence_number != png_ptr->next_seq_num) ++ png_error(png_ptr, "fcTL or fdAT chunk with out-of-order sequence " ++ "number found"); ++ ++ png_ptr->next_seq_num++; ++} ++#endif /* PNG_READ_APNG_SUPPORTED */ ++ + #ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED + /* Utility function for png_handle_unknown; set up png_ptr::unknown_chunk */ + static int +@@ -4165,7 +4343,38 @@ + { + uInt avail_in; + png_bytep buffer; ++#ifdef PNG_READ_APNG_SUPPORTED ++ png_uint_32 bytes_to_skip = 0; ++ ++ while (png_ptr->idat_size == 0 || bytes_to_skip != 0) ++ { ++ png_crc_finish(png_ptr, bytes_to_skip); ++ bytes_to_skip = 0; + ++ png_ptr->idat_size = png_read_chunk_header(png_ptr); ++ if (png_ptr->num_frames_read == 0) ++ { ++ if (png_ptr->chunk_name != png_IDAT) ++ png_error(png_ptr, "Not enough image data"); ++ } ++ else ++ { ++ if (png_ptr->chunk_name == png_IEND) ++ png_error(png_ptr, "Not enough image data"); ++ if (png_ptr->chunk_name != png_fdAT) ++ { ++ png_warning(png_ptr, "Skipped (ignored) a chunk " ++ "between APNG chunks"); ++ bytes_to_skip = png_ptr->idat_size; ++ continue; ++ } ++ ++ png_ensure_sequence_number(png_ptr, png_ptr->idat_size); ++ ++ png_ptr->idat_size -= 4; ++ } ++ } ++#else + while (png_ptr->idat_size == 0) + { + png_crc_finish(png_ptr, 0); +@@ -4177,7 +4386,7 @@ + if (png_ptr->chunk_name != png_IDAT) + png_error(png_ptr, "Not enough image data"); + } +- ++#endif /* PNG_READ_APNG_SUPPORTED */ + avail_in = png_ptr->IDAT_read_size; + + if (avail_in > png_ptr->idat_size) +@@ -4240,6 +4449,9 @@ + + png_ptr->mode |= PNG_AFTER_IDAT; + png_ptr->flags |= PNG_FLAG_ZSTREAM_ENDED; ++#ifdef PNG_READ_APNG_SUPPORTED ++ png_ptr->num_frames_read++; ++#endif + + if (png_ptr->zstream.avail_in > 0 || png_ptr->idat_size > 0) + png_chunk_benign_error(png_ptr, "Extra compressed data"); +@@ -4678,4 +4890,80 @@ + + png_ptr->flags |= PNG_FLAG_ROW_INIT; + } ++ ++#ifdef PNG_READ_APNG_SUPPORTED ++/* This function is to be called after the main IDAT set has been read and ++ * before a new IDAT is read. It resets some parts of png_ptr ++ * to make them usable by the read functions again */ ++void /* PRIVATE */ ++png_read_reset(png_structp png_ptr) ++{ ++ png_ptr->mode &= ~PNG_HAVE_IDAT; ++ png_ptr->mode &= ~PNG_AFTER_IDAT; ++ png_ptr->row_number = 0; ++ png_ptr->pass = 0; ++} ++ ++void /* PRIVATE */ ++png_read_reinit(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_ptr->width = info_ptr->next_frame_width; ++ png_ptr->height = info_ptr->next_frame_height; ++ png_ptr->rowbytes = PNG_ROWBYTES(png_ptr->pixel_depth,png_ptr->width); ++ png_ptr->info_rowbytes = PNG_ROWBYTES(info_ptr->pixel_depth, ++ png_ptr->width); ++ if (png_ptr->prev_row) ++ memset(png_ptr->prev_row, 0, png_ptr->rowbytes + 1); ++} ++ ++#ifdef PNG_PROGRESSIVE_READ_SUPPORTED ++/* same as png_read_reset() but for the progressive reader */ ++void /* PRIVATE */ ++png_progressive_read_reset(png_structp png_ptr) ++{ ++#ifdef PNG_READ_INTERLACING_SUPPORTED ++ /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */ ++ ++ /* Start of interlace block */ ++ const int png_pass_start[] = {0, 4, 0, 2, 0, 1, 0}; ++ ++ /* Offset to next interlace block */ ++ const int png_pass_inc[] = {8, 8, 4, 4, 2, 2, 1}; ++ ++ /* Start of interlace block in the y direction */ ++ const int png_pass_ystart[] = {0, 0, 4, 0, 2, 0, 1}; ++ ++ /* Offset to next interlace block in the y direction */ ++ const int png_pass_yinc[] = {8, 8, 8, 4, 4, 2, 2}; ++ ++ if (png_ptr->interlaced) ++ { ++ if (!(png_ptr->transformations & PNG_INTERLACE)) ++ png_ptr->num_rows = (png_ptr->height + png_pass_yinc[0] - 1 - ++ png_pass_ystart[0]) / png_pass_yinc[0]; ++ else ++ png_ptr->num_rows = png_ptr->height; ++ ++ png_ptr->iwidth = (png_ptr->width + ++ png_pass_inc[png_ptr->pass] - 1 - ++ png_pass_start[png_ptr->pass]) / ++ png_pass_inc[png_ptr->pass]; ++ } ++ else ++#endif /* PNG_READ_INTERLACING_SUPPORTED */ ++ { ++ png_ptr->num_rows = png_ptr->height; ++ png_ptr->iwidth = png_ptr->width; ++ } ++ png_ptr->flags &= ~PNG_FLAG_ZSTREAM_ENDED; ++ if (inflateReset(&(png_ptr->zstream)) != Z_OK) ++ png_error(png_ptr, "inflateReset failed"); ++ png_ptr->zstream.avail_in = 0; ++ png_ptr->zstream.next_in = 0; ++ png_ptr->zstream.next_out = png_ptr->row_buf; ++ png_ptr->zstream.avail_out = (uInt)PNG_ROWBYTES(png_ptr->pixel_depth, ++ png_ptr->iwidth) + 1; ++} ++#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ ++#endif /* PNG_READ_APNG_SUPPORTED */ + #endif /* READ */ +diff -Naru libpng-1.6.37.org/pngset.c libpng-1.6.37/pngset.c +--- libpng-1.6.37.org/pngset.c 2019-04-19 07:21:37.401024761 +0900 ++++ libpng-1.6.37/pngset.c 2019-04-19 07:22:37.858245798 +0900 +@@ -288,6 +288,11 @@ + info_ptr->pixel_depth = (png_byte)(info_ptr->channels * info_ptr->bit_depth); + + info_ptr->rowbytes = PNG_ROWBYTES(info_ptr->pixel_depth, width); ++ ++#ifdef PNG_APNG_SUPPORTED ++ /* for non-animated png. this may be overwritten from an acTL chunk later */ ++ info_ptr->num_frames = 1; ++#endif + } + + #ifdef PNG_oFFs_SUPPORTED +@@ -1158,6 +1163,147 @@ + } + #endif /* sPLT */ + ++#ifdef PNG_APNG_SUPPORTED ++png_uint_32 PNGAPI ++png_set_acTL(png_structp png_ptr, png_infop info_ptr, ++ png_uint_32 num_frames, png_uint_32 num_plays) ++{ ++ png_debug1(1, "in %s storage function", "acTL"); ++ ++ if (png_ptr == NULL || info_ptr == NULL) ++ { ++ png_warning(png_ptr, ++ "Call to png_set_acTL() with NULL png_ptr " ++ "or info_ptr ignored"); ++ return (0); ++ } ++ if (num_frames == 0) ++ { ++ png_warning(png_ptr, ++ "Ignoring attempt to set acTL with num_frames zero"); ++ return (0); ++ } ++ if (num_frames > PNG_UINT_31_MAX) ++ { ++ png_warning(png_ptr, ++ "Ignoring attempt to set acTL with num_frames > 2^31-1"); ++ return (0); ++ } ++ if (num_plays > PNG_UINT_31_MAX) ++ { ++ png_warning(png_ptr, ++ "Ignoring attempt to set acTL with num_plays " ++ "> 2^31-1"); ++ return (0); ++ } ++ ++ info_ptr->num_frames = num_frames; ++ info_ptr->num_plays = num_plays; ++ ++ info_ptr->valid |= PNG_INFO_acTL; ++ ++ return (1); ++} ++ ++/* delay_num and delay_den can hold any 16-bit values including zero */ ++png_uint_32 PNGAPI ++png_set_next_frame_fcTL(png_structp png_ptr, png_infop info_ptr, ++ png_uint_32 width, png_uint_32 height, ++ png_uint_32 x_offset, png_uint_32 y_offset, ++ png_uint_16 delay_num, png_uint_16 delay_den, ++ png_byte dispose_op, png_byte blend_op) ++{ ++ png_debug1(1, "in %s storage function", "fcTL"); ++ ++ if (png_ptr == NULL || info_ptr == NULL) ++ { ++ png_warning(png_ptr, ++ "Call to png_set_fcTL() with NULL png_ptr or info_ptr " ++ "ignored"); ++ return (0); ++ } ++ ++ png_ensure_fcTL_is_valid(png_ptr, width, height, x_offset, y_offset, ++ delay_num, delay_den, dispose_op, blend_op); ++ ++ if (blend_op == PNG_BLEND_OP_OVER) ++ { ++ if (!(png_ptr->color_type & PNG_COLOR_MASK_ALPHA) && ++ !(png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS))) ++ { ++ png_warning(png_ptr, "PNG_BLEND_OP_OVER is meaningless " ++ "and wasteful for opaque images, ignored"); ++ blend_op = PNG_BLEND_OP_SOURCE; ++ } ++ } ++ ++ info_ptr->next_frame_width = width; ++ info_ptr->next_frame_height = height; ++ info_ptr->next_frame_x_offset = x_offset; ++ info_ptr->next_frame_y_offset = y_offset; ++ info_ptr->next_frame_delay_num = delay_num; ++ info_ptr->next_frame_delay_den = delay_den; ++ info_ptr->next_frame_dispose_op = dispose_op; ++ info_ptr->next_frame_blend_op = blend_op; ++ ++ info_ptr->valid |= PNG_INFO_fcTL; ++ ++ return (1); ++} ++ ++void /* PRIVATE */ ++png_ensure_fcTL_is_valid(png_structp png_ptr, ++ png_uint_32 width, png_uint_32 height, ++ png_uint_32 x_offset, png_uint_32 y_offset, ++ png_uint_16 delay_num, png_uint_16 delay_den, ++ png_byte dispose_op, png_byte blend_op) ++{ ++ if (width == 0 || width > PNG_UINT_31_MAX) ++ png_error(png_ptr, "invalid width in fcTL (> 2^31-1)"); ++ if (height == 0 || height > PNG_UINT_31_MAX) ++ png_error(png_ptr, "invalid height in fcTL (> 2^31-1)"); ++ if (x_offset > PNG_UINT_31_MAX) ++ png_error(png_ptr, "invalid x_offset in fcTL (> 2^31-1)"); ++ if (y_offset > PNG_UINT_31_MAX) ++ png_error(png_ptr, "invalid y_offset in fcTL (> 2^31-1)"); ++ if (width + x_offset > png_ptr->first_frame_width || ++ height + y_offset > png_ptr->first_frame_height) ++ png_error(png_ptr, "dimensions of a frame are greater than" ++ "the ones in IHDR"); ++ ++ if (dispose_op != PNG_DISPOSE_OP_NONE && ++ dispose_op != PNG_DISPOSE_OP_BACKGROUND && ++ dispose_op != PNG_DISPOSE_OP_PREVIOUS) ++ png_error(png_ptr, "invalid dispose_op in fcTL"); ++ ++ if (blend_op != PNG_BLEND_OP_SOURCE && ++ blend_op != PNG_BLEND_OP_OVER) ++ png_error(png_ptr, "invalid blend_op in fcTL"); ++ ++ PNG_UNUSED(delay_num) ++ PNG_UNUSED(delay_den) ++} ++ ++png_uint_32 PNGAPI ++png_set_first_frame_is_hidden(png_structp png_ptr, png_infop info_ptr, ++ png_byte is_hidden) ++{ ++ png_debug(1, "in png_first_frame_is_hidden()"); ++ ++ if (png_ptr == NULL) ++ return 0; ++ ++ if (is_hidden) ++ png_ptr->apng_flags |= PNG_FIRST_FRAME_HIDDEN; ++ else ++ png_ptr->apng_flags &= ~PNG_FIRST_FRAME_HIDDEN; ++ ++ PNG_UNUSED(info_ptr) ++ ++ return 1; ++} ++#endif /* PNG_APNG_SUPPORTED */ ++ + #ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED + static png_byte + check_location(png_const_structrp png_ptr, int location) +diff -Naru libpng-1.6.37.org/pngstruct.h libpng-1.6.37/pngstruct.h +--- libpng-1.6.37.org/pngstruct.h 2019-04-19 07:21:37.401024761 +0900 ++++ libpng-1.6.37/pngstruct.h 2019-04-19 07:22:37.854245849 +0900 +@@ -409,6 +409,27 @@ + png_byte filter_type; + #endif + ++#ifdef PNG_APNG_SUPPORTED ++ png_uint_32 apng_flags; ++ png_uint_32 next_seq_num; /* next fcTL/fdAT chunk sequence number */ ++ png_uint_32 first_frame_width; ++ png_uint_32 first_frame_height; ++ ++#ifdef PNG_READ_APNG_SUPPORTED ++ png_uint_32 num_frames_read; /* incremented after all image data of */ ++ /* a frame is read */ ++#ifdef PNG_PROGRESSIVE_READ_SUPPORTED ++ png_progressive_frame_ptr frame_info_fn; /* frame info read callback */ ++ png_progressive_frame_ptr frame_end_fn; /* frame data read callback */ ++#endif ++#endif ++ ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ png_uint_32 num_frames_to_write; ++ png_uint_32 num_frames_written; ++#endif ++#endif /* PNG_APNG_SUPPORTED */ ++ + /* New members added in libpng-1.2.0 */ + + /* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */ +diff -Naru libpng-1.6.37.org/pngtest.c libpng-1.6.37/pngtest.c +--- libpng-1.6.37.org/pngtest.c 2019-04-19 07:21:37.401024761 +0900 ++++ libpng-1.6.37/pngtest.c 2019-04-19 07:22:37.854245849 +0900 +@@ -875,6 +875,10 @@ + volatile int num_passes; + int pass; + int bit_depth, color_type; ++#ifdef PNG_APNG_SUPPORTED ++ png_uint_32 num_frames; ++ png_uint_32 num_plays; ++#endif + + row_buf = NULL; + error_parameters.file_name = inname; +@@ -1383,6 +1387,22 @@ + } + } + #endif ++ ++#ifdef PNG_APNG_SUPPORTED ++ if (png_get_valid(read_ptr, read_info_ptr, PNG_INFO_acTL)) ++ { ++ if (png_get_acTL(read_ptr, read_info_ptr, &num_frames, &num_plays)) ++ { ++ png_byte is_hidden; ++ pngtest_debug2("Handling acTL chunks (frames %ld, plays %ld)", ++ num_frames, num_plays); ++ png_set_acTL(write_ptr, write_info_ptr, num_frames, num_plays); ++ is_hidden = png_get_first_frame_is_hidden(read_ptr, read_info_ptr); ++ png_set_first_frame_is_hidden(write_ptr, write_info_ptr, is_hidden); ++ } ++ } ++#endif ++ + #ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED + { + png_unknown_chunkp unknowns; +@@ -1463,6 +1483,110 @@ + t_misc += (t_stop - t_start); + t_start = t_stop; + #endif ++#ifdef PNG_APNG_SUPPORTED ++ if (png_get_valid(read_ptr, read_info_ptr, PNG_INFO_acTL)) ++ { ++ png_uint_32 frame; ++ for (frame = 0; frame < num_frames; frame++) ++ { ++ png_uint_32 frame_width; ++ png_uint_32 frame_height; ++ png_uint_32 x_offset; ++ png_uint_32 y_offset; ++ png_uint_16 delay_num; ++ png_uint_16 delay_den; ++ png_byte dispose_op; ++ png_byte blend_op; ++ png_read_frame_head(read_ptr, read_info_ptr); ++ if (png_get_valid(read_ptr, read_info_ptr, PNG_INFO_fcTL)) ++ { ++ png_get_next_frame_fcTL(read_ptr, read_info_ptr, ++ &frame_width, &frame_height, ++ &x_offset, &y_offset, ++ &delay_num, &delay_den, ++ &dispose_op, &blend_op); ++ } ++ else ++ { ++ frame_width = width; ++ frame_height = height; ++ x_offset = 0; ++ y_offset = 0; ++ delay_num = 1; ++ delay_den = 1; ++ dispose_op = PNG_DISPOSE_OP_NONE; ++ blend_op = PNG_BLEND_OP_SOURCE; ++ } ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ png_write_frame_head(write_ptr, write_info_ptr, (png_bytepp)&row_buf, ++ frame_width, frame_height, ++ x_offset, y_offset, ++ delay_num, delay_den, ++ dispose_op, blend_op); ++#endif ++ for (pass = 0; pass < num_passes; pass++) ++ { ++# ifdef calc_pass_height ++ png_uint_32 pass_height; ++ ++ if (num_passes == 7) /* interlaced */ ++ { ++ if (PNG_PASS_COLS(frame_width, pass) > 0) ++ pass_height = PNG_PASS_ROWS(frame_height, pass); ++ ++ else ++ pass_height = 0; ++ } ++ ++ else /* not interlaced */ ++ pass_height = frame_height; ++# else ++# define pass_height frame_height ++# endif ++ ++ pngtest_debug1("Writing row data for pass %d", pass); ++ for (y = 0; y < pass_height; y++) ++ { ++#ifndef SINGLE_ROWBUF_ALLOC ++ pngtest_debug2("Allocating row buffer (pass %d, y = %u)...", pass, y); ++ ++ row_buf = (png_bytep)png_malloc(read_ptr, ++ png_get_rowbytes(read_ptr, read_info_ptr)); ++ ++ pngtest_debug2("\t0x%08lx (%lu bytes)", (unsigned long)row_buf, ++ (unsigned long)png_get_rowbytes(read_ptr, read_info_ptr)); ++ ++#endif /* !SINGLE_ROWBUF_ALLOC */ ++ png_read_rows(read_ptr, (png_bytepp)&row_buf, NULL, 1); ++ ++#ifdef PNG_WRITE_SUPPORTED ++#ifdef PNGTEST_TIMING ++ t_stop = (float)clock(); ++ t_decode += (t_stop - t_start); ++ t_start = t_stop; ++#endif ++ png_write_rows(write_ptr, (png_bytepp)&row_buf, 1); ++#ifdef PNGTEST_TIMING ++ t_stop = (float)clock(); ++ t_encode += (t_stop - t_start); ++ t_start = t_stop; ++#endif ++#endif /* PNG_WRITE_SUPPORTED */ ++ ++#ifndef SINGLE_ROWBUF_ALLOC ++ pngtest_debug2("Freeing row buffer (pass %d, y = %u)", pass, y); ++ png_free(read_ptr, row_buf); ++ row_buf = NULL; ++#endif /* !SINGLE_ROWBUF_ALLOC */ ++ } ++ } ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ png_write_frame_tail(write_ptr, write_info_ptr); ++#endif ++ } ++ } ++ else ++#endif + for (pass = 0; pass < num_passes; pass++) + { + # ifdef calc_pass_height +diff -Naru libpng-1.6.37.org/pngwrite.c libpng-1.6.37/pngwrite.c +--- libpng-1.6.37.org/pngwrite.c 2019-04-19 07:21:37.402024748 +0900 ++++ libpng-1.6.37/pngwrite.c 2019-04-19 07:22:37.855245836 +0900 +@@ -128,6 +128,10 @@ + * the application continues writing the PNG. So check the 'invalid' + * flag here too. + */ ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ if (info_ptr->valid & PNG_INFO_acTL) ++ png_write_acTL(png_ptr, info_ptr->num_frames, info_ptr->num_plays); ++#endif + #ifdef PNG_GAMMA_SUPPORTED + # ifdef PNG_WRITE_gAMA_SUPPORTED + if ((info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) == 0 && +@@ -370,6 +374,11 @@ + png_benign_error(png_ptr, "Wrote palette index exceeding num_palette"); + #endif + ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ if (png_ptr->num_frames_written != png_ptr->num_frames_to_write) ++ png_error(png_ptr, "Not enough frames written"); ++#endif ++ + /* See if user wants us to write information chunks */ + if (info_ptr != NULL) + { +@@ -1461,6 +1470,43 @@ + } + #endif + ++#ifdef PNG_WRITE_APNG_SUPPORTED ++void PNGAPI ++png_write_frame_head(png_structp png_ptr, png_infop info_ptr, ++ png_bytepp row_pointers, png_uint_32 width, png_uint_32 height, ++ png_uint_32 x_offset, png_uint_32 y_offset, ++ png_uint_16 delay_num, png_uint_16 delay_den, png_byte dispose_op, ++ png_byte blend_op) ++{ ++ png_debug(1, "in png_write_frame_head"); ++ ++ /* there is a chance this has been set after png_write_info was called, ++ * so it would be set but not written. is there a way to be sure? */ ++ if (!(info_ptr->valid & PNG_INFO_acTL)) ++ png_error(png_ptr, "png_write_frame_head(): acTL not set"); ++ ++ png_write_reset(png_ptr); ++ ++ png_write_reinit(png_ptr, info_ptr, width, height); ++ ++ if ( !(png_ptr->num_frames_written == 0 && ++ (png_ptr->apng_flags & PNG_FIRST_FRAME_HIDDEN) ) ) ++ png_write_fcTL(png_ptr, width, height, x_offset, y_offset, ++ delay_num, delay_den, dispose_op, blend_op); ++ ++ PNG_UNUSED(row_pointers) ++} ++ ++void PNGAPI ++png_write_frame_tail(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_write_frame_tail"); ++ ++ png_ptr->num_frames_written++; ++ ++ PNG_UNUSED(info_ptr) ++} ++#endif /* PNG_WRITE_APNG_SUPPORTED */ + + #ifdef PNG_SIMPLIFIED_WRITE_SUPPORTED + /* Initialize the write structure - general purpose utility. */ +diff -Naru libpng-1.6.37.org/pngwutil.c libpng-1.6.37/pngwutil.c +--- libpng-1.6.37.org/pngwutil.c 2019-04-19 07:21:37.402024748 +0900 ++++ libpng-1.6.37/pngwutil.c 2019-04-19 07:22:37.867245682 +0900 +@@ -821,6 +821,11 @@ + /* Write the chunk */ + png_write_complete_chunk(png_ptr, png_IHDR, buf, 13); + ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ png_ptr->first_frame_width = width; ++ png_ptr->first_frame_height = height; ++#endif ++ + if ((png_ptr->do_filter) == PNG_NO_FILTERS) + { + if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE || +@@ -1002,8 +1007,17 @@ + optimize_cmf(data, png_image_size(png_ptr)); + #endif + +- if (size > 0) +- png_write_complete_chunk(png_ptr, png_IDAT, data, size); ++ if (size > 0) ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ { ++ if (png_ptr->num_frames_written == 0) ++#endif ++ png_write_complete_chunk(png_ptr, png_IDAT, data, size); ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ else ++ png_write_fdAT(png_ptr, data, size); ++ } ++#endif /* PNG_WRITE_APNG_SUPPORTED */ + png_ptr->mode |= PNG_HAVE_IDAT; + + png_ptr->zstream.next_out = data; +@@ -1050,7 +1064,17 @@ + #endif + + if (size > 0) ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ { ++ if (png_ptr->num_frames_written == 0) ++#endif + png_write_complete_chunk(png_ptr, png_IDAT, data, size); ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ else ++ png_write_fdAT(png_ptr, data, size); ++ } ++#endif /* PNG_WRITE_APNG_SUPPORTED */ ++ + png_ptr->zstream.avail_out = 0; + png_ptr->zstream.next_out = NULL; + png_ptr->mode |= PNG_HAVE_IDAT | PNG_AFTER_IDAT; +@@ -1885,6 +1909,82 @@ + } + #endif + ++#ifdef PNG_WRITE_APNG_SUPPORTED ++void /* PRIVATE */ ++png_write_acTL(png_structp png_ptr, ++ png_uint_32 num_frames, png_uint_32 num_plays) ++{ ++ png_byte buf[8]; ++ ++ png_debug(1, "in png_write_acTL"); ++ ++ png_ptr->num_frames_to_write = num_frames; ++ ++ if (png_ptr->apng_flags & PNG_FIRST_FRAME_HIDDEN) ++ num_frames--; ++ ++ png_save_uint_32(buf, num_frames); ++ png_save_uint_32(buf + 4, num_plays); ++ ++ png_write_complete_chunk(png_ptr, png_acTL, buf, (png_size_t)8); ++} ++ ++void /* PRIVATE */ ++png_write_fcTL(png_structp png_ptr, png_uint_32 width, png_uint_32 height, ++ png_uint_32 x_offset, png_uint_32 y_offset, ++ png_uint_16 delay_num, png_uint_16 delay_den, png_byte dispose_op, ++ png_byte blend_op) ++{ ++ png_byte buf[26]; ++ ++ png_debug(1, "in png_write_fcTL"); ++ ++ if (png_ptr->num_frames_written == 0 && (x_offset != 0 || y_offset != 0)) ++ png_error(png_ptr, "x and/or y offset for the first frame aren't 0"); ++ if (png_ptr->num_frames_written == 0 && ++ (width != png_ptr->first_frame_width || ++ height != png_ptr->first_frame_height)) ++ png_error(png_ptr, "width and/or height in the first frame's fcTL " ++ "don't match the ones in IHDR"); ++ ++ /* more error checking */ ++ png_ensure_fcTL_is_valid(png_ptr, width, height, x_offset, y_offset, ++ delay_num, delay_den, dispose_op, blend_op); ++ ++ png_save_uint_32(buf, png_ptr->next_seq_num); ++ png_save_uint_32(buf + 4, width); ++ png_save_uint_32(buf + 8, height); ++ png_save_uint_32(buf + 12, x_offset); ++ png_save_uint_32(buf + 16, y_offset); ++ png_save_uint_16(buf + 20, delay_num); ++ png_save_uint_16(buf + 22, delay_den); ++ buf[24] = dispose_op; ++ buf[25] = blend_op; ++ ++ png_write_complete_chunk(png_ptr, png_fcTL, buf, (png_size_t)26); ++ ++ png_ptr->next_seq_num++; ++} ++ ++void /* PRIVATE */ ++png_write_fdAT(png_structp png_ptr, ++ png_const_bytep data, png_size_t length) ++{ ++ png_byte buf[4]; ++ ++ png_write_chunk_header(png_ptr, png_fdAT, (png_uint_32)(4 + length)); ++ ++ png_save_uint_32(buf, png_ptr->next_seq_num); ++ png_write_chunk_data(png_ptr, buf, 4); ++ ++ png_write_chunk_data(png_ptr, data, length); ++ ++ png_write_chunk_end(png_ptr); ++ ++ png_ptr->next_seq_num++; ++} ++#endif /* PNG_WRITE_APNG_SUPPORTED */ ++ + /* Initializes the row writing capability of libpng */ + void /* PRIVATE */ + png_write_start_row(png_structrp png_ptr) +@@ -2778,4 +2878,39 @@ + } + #endif /* WRITE_FLUSH */ + } ++ ++#ifdef PNG_WRITE_APNG_SUPPORTED ++void /* PRIVATE */ ++png_write_reset(png_structp png_ptr) ++{ ++ png_ptr->row_number = 0; ++ png_ptr->pass = 0; ++ png_ptr->mode &= ~PNG_HAVE_IDAT; ++} ++ ++void /* PRIVATE */ ++png_write_reinit(png_structp png_ptr, png_infop info_ptr, ++ png_uint_32 width, png_uint_32 height) ++{ ++ if (png_ptr->num_frames_written == 0 && ++ (width != png_ptr->first_frame_width || ++ height != png_ptr->first_frame_height)) ++ png_error(png_ptr, "width and/or height in the first frame's fcTL " ++ "don't match the ones in IHDR"); ++ if (width > png_ptr->first_frame_width || ++ height > png_ptr->first_frame_height) ++ png_error(png_ptr, "width and/or height for a frame greater than" ++ "the ones in IHDR"); ++ ++ png_set_IHDR(png_ptr, info_ptr, width, height, ++ info_ptr->bit_depth, info_ptr->color_type, ++ info_ptr->interlace_type, info_ptr->compression_type, ++ info_ptr->filter_type); ++ ++ png_ptr->width = width; ++ png_ptr->height = height; ++ png_ptr->rowbytes = PNG_ROWBYTES(png_ptr->pixel_depth, width); ++ png_ptr->usr_width = png_ptr->width; ++} ++#endif /* PNG_WRITE_APNG_SUPPORTED */ + #endif /* WRITE */ +diff -Naru libpng-1.6.37.org/scripts/symbols.def libpng-1.6.37/scripts/symbols.def +--- libpng-1.6.37.org/scripts/symbols.def 2019-04-19 07:21:37.405024710 +0900 ++++ libpng-1.6.37/scripts/symbols.def 2019-04-19 07:22:37.856245823 +0900 +@@ -253,3 +253,23 @@ + png_set_eXIf @247 + png_get_eXIf_1 @248 + png_set_eXIf_1 @249 ++ png_get_acTL @250 ++ png_set_acTL @251 ++ png_get_num_frames @252 ++ png_get_num_plays @253 ++ png_get_next_frame_fcTL @254 ++ png_set_next_frame_fcTL @255 ++ png_get_next_frame_width @256 ++ png_get_next_frame_height @257 ++ png_get_next_frame_x_offset @258 ++ png_get_next_frame_y_offset @259 ++ png_get_next_frame_delay_num @260 ++ png_get_next_frame_delay_den @261 ++ png_get_next_frame_dispose_op @262 ++ png_get_next_frame_blend_op @263 ++ png_get_first_frame_is_hidden @264 ++ png_set_first_frame_is_hidden @265 ++ png_read_frame_head @266 ++ png_set_progressive_frame_fn @267 ++ png_write_frame_head @268 ++ png_write_frame_tail @269 diff --git a/extra/libpng/sources b/extra/libpng/sources new file mode 100644 index 00000000..d6556f0c --- /dev/null +++ b/extra/libpng/sources @@ -0,0 +1,2 @@ +https://github.com/glennrp/libpng/archive/v1.6.37.tar.gz +patches/libpng-1.6.37-apng.patch diff --git a/extra/libpng/version b/extra/libpng/version new file mode 100644 index 00000000..d61fa1c5 --- /dev/null +++ b/extra/libpng/version @@ -0,0 +1 @@ +1.6.37 2 diff --git a/extra/libtheora/build b/extra/libtheora/build new file mode 100755 index 00000000..288944dc --- /dev/null +++ b/extra/libtheora/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +patch -p0 < libtheora-1.1.1-libpng16.patch + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/extra/libtheora/checksums b/extra/libtheora/checksums new file mode 100644 index 00000000..9286d3eb --- /dev/null +++ b/extra/libtheora/checksums @@ -0,0 +1,2 @@ +40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz +e4c9a8dc798c596ed32a2a720020ae27a0e72f5add1a47cb8fadebe0e7180d7e libtheora-1.1.1-libpng16.patch diff --git a/extra/libtheora/depends b/extra/libtheora/depends new file mode 100644 index 00000000..b6a6854a --- /dev/null +++ b/extra/libtheora/depends @@ -0,0 +1 @@ +libogg diff --git a/extra/libtheora/patches/libtheora-1.1.1-libpng16.patch b/extra/libtheora/patches/libtheora-1.1.1-libpng16.patch new file mode 100644 index 00000000..93da700c --- /dev/null +++ b/extra/libtheora/patches/libtheora-1.1.1-libpng16.patch @@ -0,0 +1,17 @@ +http://bugs.gentoo.org/465450 +http://trac.xiph.org/ticket/1947 + +--- examples/png2theora.c ++++ examples/png2theora.c +@@ -462,9 +462,9 @@ + png_set_strip_alpha(png_ptr); + + row_data = (png_bytep)png_malloc(png_ptr, +- 3*height*width*png_sizeof(*row_data)); ++ 3*height*width*sizeof(*row_data)); + row_pointers = (png_bytep *)png_malloc(png_ptr, +- height*png_sizeof(*row_pointers)); ++ height*sizeof(*row_pointers)); + for(y = 0; y < height; y++) { + row_pointers[y] = row_data + y*(3*width); + } diff --git a/extra/libtheora/sources b/extra/libtheora/sources new file mode 100644 index 00000000..c5eaf319 --- /dev/null +++ b/extra/libtheora/sources @@ -0,0 +1,2 @@ +https://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.gz +patches/libtheora-1.1.1-libpng16.patch diff --git a/extra/libtheora/version b/extra/libtheora/version new file mode 100644 index 00000000..d9f65d2e --- /dev/null +++ b/extra/libtheora/version @@ -0,0 +1 @@ +1.1.1 2 diff --git a/extra/libtool/build b/extra/libtool/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/extra/libtool/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/extra/libtool/checksums b/extra/libtool/checksums new file mode 100644 index 00000000..238a49a3 --- /dev/null +++ b/extra/libtool/checksums @@ -0,0 +1 @@ +7c87a8c2c8c0fc9cd5019e402bed4292462d00a718a7cd5f11218153bf28b26f libtool-2.4.6.tar.xz diff --git a/extra/libtool/depends b/extra/libtool/depends new file mode 100644 index 00000000..0a3b5170 --- /dev/null +++ b/extra/libtool/depends @@ -0,0 +1 @@ +perl make diff --git a/extra/libtool/sources b/extra/libtool/sources new file mode 100644 index 00000000..5f32de1a --- /dev/null +++ b/extra/libtool/sources @@ -0,0 +1 @@ +https://ftp.gnu.org/gnu/libtool/libtool-2.4.6.tar.xz diff --git a/extra/libtool/version b/extra/libtool/version new file mode 100644 index 00000000..c2d12dbd --- /dev/null +++ b/extra/libtool/version @@ -0,0 +1 @@ +2.4.6 1 diff --git a/extra/libvorbis/build b/extra/libvorbis/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/extra/libvorbis/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/extra/libvorbis/checksums b/extra/libvorbis/checksums new file mode 100644 index 00000000..eba280a4 --- /dev/null +++ b/extra/libvorbis/checksums @@ -0,0 +1 @@ +6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb libvorbis-1.3.6.tar.gz diff --git a/extra/libvorbis/depends b/extra/libvorbis/depends new file mode 100644 index 00000000..b6a6854a --- /dev/null +++ b/extra/libvorbis/depends @@ -0,0 +1 @@ +libogg diff --git a/extra/libvorbis/sources b/extra/libvorbis/sources new file mode 100644 index 00000000..4e617a19 --- /dev/null +++ b/extra/libvorbis/sources @@ -0,0 +1 @@ +https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.6.tar.gz diff --git a/extra/libvorbis/version b/extra/libvorbis/version new file mode 100644 index 00000000..d71e5cf9 --- /dev/null +++ b/extra/libvorbis/version @@ -0,0 +1 @@ +1.3.6 2 diff --git a/extra/libvpx/build b/extra/libvpx/build new file mode 100755 index 00000000..04d7a732 --- /dev/null +++ b/extra/libvpx/build @@ -0,0 +1,23 @@ +#!/bin/sh -e + +patch -p1 < fix-busybox-diff.patch + +./configure \ + --prefix=/usr \ + --enable-vp8 \ + --enable-vp9 \ + --disable-tools \ + --disable-examples \ + --disable-docs \ + --enable-experimental \ + --enable-runtime-cpu-detect \ + --enable-shared \ + --enable-postproc \ + --enable-pic \ + --disable-install-docs \ + --disable-install-srcs \ + --disable-install-bins \ + --as=yasm + +make +make DESTDIR="$1" install diff --git a/extra/libvpx/checksums b/extra/libvpx/checksums new file mode 100644 index 00000000..819af214 --- /dev/null +++ b/extra/libvpx/checksums @@ -0,0 +1,2 @@ +df19b8f24758e90640e1ab228ab4a4676ec3df19d23e4593375e6f3847dee03e v1.8.1.tar.gz +ce802d64bcbeb4230527aea2b4284d9844fb12fa5aca868a94e03982f85ec45b fix-busybox-diff.patch diff --git a/extra/libvpx/depends b/extra/libvpx/depends new file mode 100644 index 00000000..30287002 --- /dev/null +++ b/extra/libvpx/depends @@ -0,0 +1,2 @@ +perl make +yasm make diff --git a/extra/libvpx/patches/fix-busybox-diff.patch b/extra/libvpx/patches/fix-busybox-diff.patch new file mode 100644 index 00000000..fa93b0a6 --- /dev/null +++ b/extra/libvpx/patches/fix-busybox-diff.patch @@ -0,0 +1,13 @@ +diff --git a/configure b/configure +index e5a74c6..11f660d 100755 +--- a/configure ++++ b/configure +@@ -170,7 +170,7 @@ for t in ${all_targets}; do + [ -f "${source_path}/${t}.mk" ] && enable_feature ${t} + done + +-if ! diff --version >/dev/null; then ++if ! command -v diff >/dev/null; then + die "diff missing: Try installing diffutils via your package manager." + fi + diff --git a/extra/libvpx/sources b/extra/libvpx/sources new file mode 100644 index 00000000..1927b430 --- /dev/null +++ b/extra/libvpx/sources @@ -0,0 +1,2 @@ +https://github.com/webmproject/libvpx/archive/v1.8.1.tar.gz +patches/fix-busybox-diff.patch diff --git a/extra/libvpx/version b/extra/libvpx/version new file mode 100644 index 00000000..8aa37bcd --- /dev/null +++ b/extra/libvpx/version @@ -0,0 +1 @@ +1.8.1 1 diff --git a/extra/libwebp/build b/extra/libwebp/build new file mode 100755 index 00000000..9b42927e --- /dev/null +++ b/extra/libwebp/build @@ -0,0 +1,11 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --disable-static \ + --enable-libwebpmux \ + --enable-libwebpdemux \ + --enable-libwebpdecoder + +make +make DESTDIR="$1" install diff --git a/extra/libwebp/checksums b/extra/libwebp/checksums new file mode 100644 index 00000000..b51a743b --- /dev/null +++ b/extra/libwebp/checksums @@ -0,0 +1 @@ +e20a07865c8697bba00aebccc6f54912d6bc333bb4d604e6b07491c1a226b34f libwebp-1.0.3.tar.gz diff --git a/extra/libwebp/depends b/extra/libwebp/depends new file mode 100644 index 00000000..901a7cd2 --- /dev/null +++ b/extra/libwebp/depends @@ -0,0 +1,3 @@ +pkgconf make +libpng +libjpeg-turbo diff --git a/extra/libwebp/sources b/extra/libwebp/sources new file mode 100644 index 00000000..57061577 --- /dev/null +++ b/extra/libwebp/sources @@ -0,0 +1 @@ +https://downloads.webmproject.org/releases/webp/libwebp-1.0.3.tar.gz diff --git a/extra/libwebp/version b/extra/libwebp/version new file mode 100644 index 00000000..4ee872a0 --- /dev/null +++ b/extra/libwebp/version @@ -0,0 +1 @@ +1.0.3 1 diff --git a/extra/libxml2/build b/extra/libxml2/build new file mode 100755 index 00000000..a568fbde --- /dev/null +++ b/extra/libxml2/build @@ -0,0 +1,11 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --with-threads \ + --with-history \ + --without-python \ + --without-icu + +make +make DESTDIR="$1" install diff --git a/extra/libxml2/checksums b/extra/libxml2/checksums new file mode 100644 index 00000000..767c08ad --- /dev/null +++ b/extra/libxml2/checksums @@ -0,0 +1 @@ +aafee193ffb8fe0c82d4afef6ef91972cbaf5feea100edc2f262750611b4be1f libxml2-2.9.10.tar.gz diff --git a/extra/libxml2/depends b/extra/libxml2/depends new file mode 100644 index 00000000..8c249387 --- /dev/null +++ b/extra/libxml2/depends @@ -0,0 +1,2 @@ +xz +zlib diff --git a/extra/libxml2/sources b/extra/libxml2/sources new file mode 100644 index 00000000..2077d565 --- /dev/null +++ b/extra/libxml2/sources @@ -0,0 +1 @@ +https://fossies.org/linux/www/libxml2-2.9.10.tar.gz diff --git a/extra/libxml2/version b/extra/libxml2/version new file mode 100644 index 00000000..af4c1a1f --- /dev/null +++ b/extra/libxml2/version @@ -0,0 +1 @@ +2.9.10 1 diff --git a/extra/llvm/build b/extra/llvm/build new file mode 100755 index 00000000..337ebeb3 --- /dev/null +++ b/extra/llvm/build @@ -0,0 +1,19 @@ +#!/bin/sh -e + +export DESTDIR="$1" + +cmake -B build \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=Release \ + -DLLVM_BUILD_LLVM_DYLIB=ON \ + -DLLVM_LINK_LLVM_DYLIB=ON \ + -DLLVM_TARGETS_TO_BUILD="host;AMDGPU" \ + -DLLVM_ENABLE_RTTI=ON \ + -DLLVM_HOST_TRIPLE="$(cc -dumpmachine)" \ + -DLLVM_BUILD_EXAMPLES=OFF \ + -DLLVM_BUILD_DOCS=OFF \ + -DLLVM_BUILD_TESTS=OFF \ + -Wno-dev + +cmake --build build +cmake --install build diff --git a/extra/llvm/checksums b/extra/llvm/checksums new file mode 100644 index 00000000..74fbcfb0 --- /dev/null +++ b/extra/llvm/checksums @@ -0,0 +1 @@ +d6a0565cf21f22e9b4353b2eb92622e8365000a9e90a16b09b56f8157eabfe84 llvm-9.0.0.src.tar.xz diff --git a/extra/llvm/depends b/extra/llvm/depends new file mode 100644 index 00000000..126422ec --- /dev/null +++ b/extra/llvm/depends @@ -0,0 +1,3 @@ +cmake make +python make +zlib diff --git a/extra/llvm/sources b/extra/llvm/sources new file mode 100644 index 00000000..2aa9c3ce --- /dev/null +++ b/extra/llvm/sources @@ -0,0 +1 @@ +https://releases.llvm.org/9.0.0/llvm-9.0.0.src.tar.xz diff --git a/extra/llvm/version b/extra/llvm/version new file mode 100644 index 00000000..f8041b0a --- /dev/null +++ b/extra/llvm/version @@ -0,0 +1 @@ +9.0.0 1 diff --git a/extra/lvm2/build b/extra/lvm2/build new file mode 100755 index 00000000..ffa71785 --- /dev/null +++ b/extra/lvm2/build @@ -0,0 +1,41 @@ +#!/bin/sh -e + +patch -p1 < fix-stdio-usage.patch +patch -p1 < disable-symver.patch + +# LVM2 calls 'fmt -1' throughout the build process. +# Busybox doesn't provide this command, however +# all it does is split words one per line and +# 'tr' can be used in its place. +sed -i 's/fmt -1/tr " " "\\n"/' \ + make.tmpl.in libdm/make.tmpl.in + +# The build fails when using busybox's 'mkdir'(?), +# swap to using 'install -d' instead which works. +export MKDIR_P="install -d" + +./configure \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-selinux \ + --enable-pkgconfig \ + --enable-fsadm \ + --enable-dmeventd \ + --enable-cmdlib \ + --enable-udev_sync \ + --enable-udev_rules \ + --enable-symvers=no \ + --disable-symvers \ + --with-default-dm-run-dir=/run \ + --with-default-locking-dir=/run/lock/lvm \ + --with-default-pid-dir=/run \ + --with-default-run-dir=/run/lvm + +make DESTDIR="$1" install + +# Make all libraries and binaries writable. +chmod -v u+w "$1/usr/lib/"* \ + "$1/usr/include/"* \ + "$1/usr/bin/"* diff --git a/extra/lvm2/checksums b/extra/lvm2/checksums new file mode 100644 index 00000000..c5677346 --- /dev/null +++ b/extra/lvm2/checksums @@ -0,0 +1,3 @@ +91753976ea1b9d94475781680be667a61fe611e89050fc73e1edbebbdc87ed44 LVM2.2.03.06.tgz +36b598a65d24b18ae7b7657b37343788c96ae56cb9673a13a09423c031002b32 fix-stdio-usage.patch +0eafb3464043c81644c919e42c79f7fbd614ca27a4bf5665b658856008147e59 disable-symver.patch diff --git a/extra/lvm2/depends b/extra/lvm2/depends new file mode 100644 index 00000000..95359853 --- /dev/null +++ b/extra/lvm2/depends @@ -0,0 +1,3 @@ +eudev +libaio +util-linux diff --git a/extra/lvm2/patches/disable-symver.patch b/extra/lvm2/patches/disable-symver.patch new file mode 100644 index 00000000..6216c061 --- /dev/null +++ b/extra/lvm2/patches/disable-symver.patch @@ -0,0 +1,136 @@ +diff --git a/configure b/configure +index 6dd7eda..ef6a416 100755 +--- a/configure ++++ b/configure +@@ -959,6 +959,7 @@ enable_fsadm + enable_blkdeactivate + enable_dmeventd + enable_selinux ++enable_symvers + enable_nls + with_localedir + with_confdir +@@ -1677,6 +1678,9 @@ Optional Features: + --disable-blkdeactivate disable blkdeactivate + --enable-dmeventd enable the device-mapper event daemon + --disable-selinux disable selinux support ++ --enable-symvers[=STYLE] ++ enables symbol versioning of the shared library ++ [default=gnu] + --enable-nls enable Native Language Support + + Optional Packages: +@@ -3077,7 +3081,6 @@ if test -z "$CFLAGS"; then : + fi + case "$host_os" in + linux*) +- CLDFLAGS="${CLDFLAGS-"$LDFLAGS"} -Wl,--version-script,.export.sym" + # equivalent to -rdynamic + ELDFLAGS="-Wl,--export-dynamic" + # FIXME Generate list and use --dynamic-list=.dlopen.sym +@@ -12969,6 +12972,33 @@ done + LIBS=$lvm_saved_libs + fi + ++################################################################################ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable symbol versioning" >&5 ++$as_echo_n "checking whether to enable symbol versioning... " >&6; } ++# Check whether --enable-symvers was given. ++if test "${enable_symvers+set}" = set; then : ++ enableval=$enable_symvers; ++ case "$enableval" in ++ gnu|no) ;; ++ *) as_fn_error $? "Unknown argument to enable/disable symvers" "$LINENO" 5 ;; ++ esac ++else ++ enable_symvers=gnu ++fi ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_symvers" >&5 ++$as_echo "$enable_symvers" >&6; } ++ ++if test x$GCC = xyes && test x$enable_symvers = xgnu ; then ++ ++$as_echo "#define GNU_SYMVER 1" >>confdefs.h ++ ++ case "$host_os" in ++ linux*) CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym" ;; ++ esac ++fi ++ ++ + ################################################################################ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable internationalisation" >&5 + $as_echo_n "checking whether to enable internationalisation... " >&6; } +diff --git a/lib/misc/lib.h b/lib/misc/lib.h +index c14f437..79b36a3 100644 +--- a/lib/misc/lib.h ++++ b/lib/misc/lib.h +@@ -62,7 +62,7 @@ + * versions of library symbols prior to the introduction of symbol + * versioning: it must never be used for new symbols. + */ +-#if defined(__GNUC__) ++#if defined(GNU_SYMVER) + #define DM_EXPORT_SYMBOL(func, ver) \ + __asm__(".symver " #func "_v" #ver ", " #func "@DM_" #ver ) + #define DM_EXPORT_SYMBOL_BASE(func) \ +diff --git a/libdm/datastruct/bitset.c b/libdm/datastruct/bitset.c +index 06bd31a..8f36ec7 100644 +--- a/libdm/datastruct/bitset.c ++++ b/libdm/datastruct/bitset.c +@@ -242,7 +242,7 @@ bad: + return NULL; + } + +-#if defined(__GNUC__) ++#if defined(GNU_SYMVER) + /* + * Maintain backward compatibility with older versions that did not + * accept a 'min_num_bits' argument to dm_bitset_parse_list(). +@@ -254,6 +254,4 @@ dm_bitset_t dm_bitset_parse_list_v1_02_129(const char *str, struct dm_pool *mem) + } + DM_EXPORT_SYMBOL(dm_bitset_parse_list, 1_02_129); + +-#else /* if defined(__GNUC__) */ +- + #endif +diff --git a/libdm/ioctl/libdm-iface.c b/libdm/ioctl/libdm-iface.c +index dd46b67..b09abdc 100644 +--- a/libdm/ioctl/libdm-iface.c ++++ b/libdm/ioctl/libdm-iface.c +@@ -2176,7 +2176,7 @@ void dm_lib_exit(void) + _version_checked = 0; + } + +-#if defined(__GNUC__) ++#if defined(GNU_SYMVER) + /* + * Maintain binary backward compatibility. + * Version script mechanism works with 'gcc' compatible compilers only. +diff --git a/libdm/libdm-deptree.c b/libdm/libdm-deptree.c +index ee12da2..08829c5 100644 +--- a/libdm/libdm-deptree.c ++++ b/libdm/libdm-deptree.c +@@ -3811,7 +3811,7 @@ void dm_tree_node_set_callback(struct dm_tree_node *dnode, + dnode->callback_data = data; + } + +-#if defined(__GNUC__) ++#if defined(GNU_SYMVER) + /* + * Backward compatible implementations. + * +diff --git a/libdm/libdm-stats.c b/libdm/libdm-stats.c +index 420e3e1..066bcdf 100644 +--- a/libdm/libdm-stats.c ++++ b/libdm/libdm-stats.c +@@ -5067,7 +5067,7 @@ int dm_stats_start_filemapd(int fd, uint64_t group_id, const char *path, + * current dm_stats_create_region() version. + */ + +-#if defined(__GNUC__) ++#if defined(GNU_SYMVER) + int dm_stats_create_region_v1_02_106(struct dm_stats *dms, uint64_t *region_id, + uint64_t start, uint64_t len, int64_t step, + int precise, const char *program_id, diff --git a/extra/lvm2/patches/fix-stdio-usage.patch b/extra/lvm2/patches/fix-stdio-usage.patch new file mode 100644 index 00000000..3fd80f64 --- /dev/null +++ b/extra/lvm2/patches/fix-stdio-usage.patch @@ -0,0 +1,58 @@ +diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c +index 479d499..7681a5b 100644 +--- a/lib/commands/toolcontext.c ++++ b/lib/commands/toolcontext.c +@@ -1599,7 +1599,7 @@ struct cmd_context *create_toolcontext(unsigned is_clvmd, + /* FIXME Make this configurable? */ + reset_lvm_errno(1); + +-#ifndef VALGRIND_POOL ++#if defined(__GLIBC__) && !defined(VALGRIND_POOL) + /* Set in/out stream buffering before glibc */ + if (set_buffering + #ifdef SYS_gettid +@@ -1980,7 +1980,7 @@ void destroy_toolcontext(struct cmd_context *cmd) + + if (cmd->pending_delete_mem) + dm_pool_destroy(cmd->pending_delete_mem); +-#ifndef VALGRIND_POOL ++#if defined(__GLIBC__) && !defined(VALGRIND_POOL) + if (cmd->linebuffer) { + /* Reset stream buffering to defaults */ + if (is_valid_fd(STDIN_FILENO) && +diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c +index 860e6de..c7539bd 100644 +--- a/tools/lvmcmdline.c ++++ b/tools/lvmcmdline.c +@@ -3209,6 +3209,7 @@ int lvm_split(char *str, int *argc, char **argv, int max) + /* Make sure we have always valid filedescriptors 0,1,2 */ + static int _check_standard_fds(void) + { ++#ifdef __GLIBC__ + int err = is_valid_fd(STDERR_FILENO); + + if (!is_valid_fd(STDIN_FILENO) && +@@ -3236,6 +3237,12 @@ static int _check_standard_fds(void) + return 0; + } + ++#else ++ if (!is_valid_fd(STDERR_FILENO) || ++ !is_valid_fd(STDOUT_FILENO) || ++ !is_valid_fd(STDIN_FILENO)) ++ return 0; ++#endif + return 1; + } + +--- ./lib/mm/memlock.c.orig 2015-03-09 11:18:41.560028850 -0100 ++++ ./lib/mm/memlock.c 2015-03-09 11:19:54.504373309 -0100 +@@ -137,7 +137,7 @@ + + static void _allocate_memory(void) + { +-#ifndef VALGRIND_POOL ++#if !defined(VALGRIND_POOL) && defined(__GLIBC__) + void *stack_mem; + struct rlimit limit; + int i, area = 0, missing = _size_malloc_tmp, max_areas = 32, hblks; diff --git a/extra/lvm2/sources b/extra/lvm2/sources new file mode 100644 index 00000000..34dd5d35 --- /dev/null +++ b/extra/lvm2/sources @@ -0,0 +1,3 @@ +https://mirrors.kernel.org/sourceware/lvm2/releases/LVM2.2.03.06.tgz +patches/fix-stdio-usage.patch +patches/disable-symver.patch diff --git a/extra/lvm2/version b/extra/lvm2/version new file mode 100644 index 00000000..7ddcde45 --- /dev/null +++ b/extra/lvm2/version @@ -0,0 +1 @@ +2.03.06 1 diff --git a/extra/meson/build b/extra/meson/build new file mode 100755 index 00000000..366c5443 --- /dev/null +++ b/extra/meson/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +python setup.py build +python setup.py install \ + --root="$1" \ + --optimize=1 \ + --skip-build diff --git a/extra/meson/checksums b/extra/meson/checksums new file mode 100644 index 00000000..20613f9d --- /dev/null +++ b/extra/meson/checksums @@ -0,0 +1 @@ +0f426ed1362c38bcc5b9027ec6aec3445d6db88e8d7249ed992e9af88a42d0e0 0.52.0.tar.gz diff --git a/extra/meson/depends b/extra/meson/depends new file mode 100644 index 00000000..35f08097 --- /dev/null +++ b/extra/meson/depends @@ -0,0 +1,2 @@ +python +samurai diff --git a/extra/meson/sources b/extra/meson/sources new file mode 100644 index 00000000..c8fbc601 --- /dev/null +++ b/extra/meson/sources @@ -0,0 +1 @@ +https://github.com/mesonbuild/meson/archive/0.52.0.tar.gz diff --git a/extra/meson/version b/extra/meson/version new file mode 100644 index 00000000..3255ab0c --- /dev/null +++ b/extra/meson/version @@ -0,0 +1 @@ +0.52.0 2 diff --git a/extra/mpv/build b/extra/mpv/build new file mode 100755 index 00000000..9d61d973 --- /dev/null +++ b/extra/mpv/build @@ -0,0 +1,13 @@ +#!/bin/sh -e + +ln -s waf-2.0.18 waf + +python waf configure \ + --prefix=/usr \ + --mandir=/usr/share/man \ + --confdir=/etc/mpv \ + --enable-alsa \ + --enable-libass + +python waf build +python waf install --destdir="$1" diff --git a/extra/mpv/checksums b/extra/mpv/checksums new file mode 100644 index 00000000..a8fab458 --- /dev/null +++ b/extra/mpv/checksums @@ -0,0 +1,2 @@ +33a1bcb7e74ff17f070e754c15c52228cf44f2cefbfd8f34886ae81df214ca35 v0.30.0.tar.gz +2e0cf83a63843da127610420cef1d3126f1187d8e572b6b3a28052fc2250d4bf waf-2.0.18 diff --git a/extra/mpv/depends b/extra/mpv/depends new file mode 100644 index 00000000..334650cf --- /dev/null +++ b/extra/mpv/depends @@ -0,0 +1,9 @@ +alsa-lib +ffmpeg +freetype-harfbuzz +libass +libXScrnSaver +libXinerama +libXrandr +mesa +python make diff --git a/extra/mpv/sources b/extra/mpv/sources new file mode 100644 index 00000000..7355aa8e --- /dev/null +++ b/extra/mpv/sources @@ -0,0 +1,2 @@ +https://github.com/mpv-player/mpv/archive/v0.30.0.tar.gz +https://waf.io/waf-2.0.18 diff --git a/extra/mpv/version b/extra/mpv/version new file mode 100644 index 00000000..b05fc3ac --- /dev/null +++ b/extra/mpv/version @@ -0,0 +1 @@ +0.30.0 1 diff --git a/extra/nasm/build b/extra/nasm/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/extra/nasm/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/extra/nasm/checksums b/extra/nasm/checksums new file mode 100644 index 00000000..f7d8373b --- /dev/null +++ b/extra/nasm/checksums @@ -0,0 +1 @@ +e24ade3e928f7253aa8c14aa44726d1edf3f98643f87c9d72ec1df44b26be8f5 nasm-2.14.02.tar.xz diff --git a/extra/nasm/depends b/extra/nasm/depends new file mode 100644 index 00000000..97a95494 --- /dev/null +++ b/extra/nasm/depends @@ -0,0 +1 @@ +perl make diff --git a/extra/nasm/sources b/extra/nasm/sources new file mode 100644 index 00000000..79bc0487 --- /dev/null +++ b/extra/nasm/sources @@ -0,0 +1 @@ +https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.xz diff --git a/extra/nasm/version b/extra/nasm/version new file mode 100644 index 00000000..bb3f3253 --- /dev/null +++ b/extra/nasm/version @@ -0,0 +1 @@ +2.14.02 1 diff --git a/extra/ncurses/build b/extra/ncurses/build new file mode 100755 index 00000000..6798aa43 --- /dev/null +++ b/extra/ncurses/build @@ -0,0 +1,21 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --mandir=/usr/share/man \ + --enable-pc-files \ + --disable-rpath-hack \ + --with-pkg-config-libdir=/usr/lib/pkgconfig \ + --with-shared \ + --enable-widec \ + --without-ada \ + --without-tests \ + --without-debug \ + --without-cxx-binding + +make +make DESTDIR="$1" install + +# These conflict with busybox's. +rm -f "$1/usr/bin/clear" +rm -f "$1/usr/bin/reset" diff --git a/extra/ncurses/checksums b/extra/ncurses/checksums new file mode 100644 index 00000000..c65d894d --- /dev/null +++ b/extra/ncurses/checksums @@ -0,0 +1 @@ +aa057eeeb4a14d470101eff4597d5833dcef5965331be3528c08d99cebaa0d17 ncurses-6.1.tar.gz diff --git a/extra/ncurses/sources b/extra/ncurses/sources new file mode 100644 index 00000000..30a20483 --- /dev/null +++ b/extra/ncurses/sources @@ -0,0 +1 @@ +https://ftp.gnu.org/gnu/ncurses/ncurses-6.1.tar.gz diff --git a/extra/ncurses/version b/extra/ncurses/version new file mode 100644 index 00000000..1143f417 --- /dev/null +++ b/extra/ncurses/version @@ -0,0 +1 @@ +6.1 1 diff --git a/extra/nodejs/build b/extra/nodejs/build new file mode 100755 index 00000000..59b7ad09 --- /dev/null +++ b/extra/nodejs/build @@ -0,0 +1,10 @@ +#!/bin/sh -e + +# Python 3 support (but not for > 3.5). +sed -i 's/(3, 5)/(3, 8)/' configure + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/extra/nodejs/checksums b/extra/nodejs/checksums new file mode 100644 index 00000000..f9f60c26 --- /dev/null +++ b/extra/nodejs/checksums @@ -0,0 +1 @@ +22b095bd70a8923d7281733bc546f9e3b388cde6cb948f45fa7413ac805243ce v13.2.0.tar.gz diff --git a/extra/nodejs/depends b/extra/nodejs/depends new file mode 100644 index 00000000..ecc77727 --- /dev/null +++ b/extra/nodejs/depends @@ -0,0 +1 @@ +python make diff --git a/extra/nodejs/sources b/extra/nodejs/sources new file mode 100644 index 00000000..e788e0e1 --- /dev/null +++ b/extra/nodejs/sources @@ -0,0 +1 @@ +https://github.com/nodejs/node/archive/v13.2.0.tar.gz diff --git a/extra/nodejs/version b/extra/nodejs/version new file mode 100644 index 00000000..510ef747 --- /dev/null +++ b/extra/nodejs/version @@ -0,0 +1 @@ +13.2.0 1 diff --git a/extra/openssh/build b/extra/openssh/build new file mode 100755 index 00000000..cdd68702 --- /dev/null +++ b/extra/openssh/build @@ -0,0 +1,25 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --datadir=/usr/share/openssh \ + --sysconfdir=/etc/ssh \ + --without-selinux \ + --with-privsep-user=nobody \ + --with-mantype=doc \ + --without-rpath \ + --disable-strip \ + --with-ssl-engine \ + --with-pid-dir=/run \ + --disable-wtmp \ + --disable-utmp + +make +make DESTDIR="$1" install + +install -m 755 contrib/ssh-copy-id "$1/usr/bin/ssh-copy-id" +install -m 644 contrib/ssh-copy-id.1 "$1/usr/share/man/man8/ssh-copy-id.1" + +# Install runit services. +install -Dm 755 sshd.run "$1/etc/sv/sshd/run" +ln -s /run/runit/supervise.sshd "$1/etc/sv/sshd/supervise" diff --git a/extra/openssh/checksums b/extra/openssh/checksums new file mode 100644 index 00000000..22451ba5 --- /dev/null +++ b/extra/openssh/checksums @@ -0,0 +1,2 @@ +02f5dbef3835d0753556f973cd57b4c19b6b1f6cd24c03445e23ac77ca1b93ff openssh-8.1p1.tar.gz +5d32a817344ac444424063d75e49afd95d7eb76d972ef5c5cfad355c8e8b1ff1 sshd.run diff --git a/extra/openssh/depends b/extra/openssh/depends new file mode 100644 index 00000000..9ee911ae --- /dev/null +++ b/extra/openssh/depends @@ -0,0 +1,2 @@ +libressl +zlib diff --git a/extra/openssh/files/sshd.run b/extra/openssh/files/sshd.run new file mode 100644 index 00000000..04f7adbb --- /dev/null +++ b/extra/openssh/files/sshd.run @@ -0,0 +1,3 @@ +#!/bin/sh +ssh-keygen -A >/dev/null 2>&1 # Will generate host keys if they don't already exist. +exec /usr/bin/sshd -D diff --git a/extra/openssh/sources b/extra/openssh/sources new file mode 100644 index 00000000..29b23857 --- /dev/null +++ b/extra/openssh/sources @@ -0,0 +1,2 @@ +https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.1p1.tar.gz +files/sshd.run diff --git a/extra/openssh/version b/extra/openssh/version new file mode 100644 index 00000000..faa64dd7 --- /dev/null +++ b/extra/openssh/version @@ -0,0 +1 @@ +8.1p1 1 diff --git a/extra/opus/build b/extra/opus/build new file mode 100755 index 00000000..23f46765 --- /dev/null +++ b/extra/opus/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --enable-custom-modes \ + --enable-float-approx + +make +make DESTDIR="$1" install diff --git a/extra/opus/checksums b/extra/opus/checksums new file mode 100644 index 00000000..77a9ad97 --- /dev/null +++ b/extra/opus/checksums @@ -0,0 +1 @@ +65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d opus-1.3.1.tar.gz diff --git a/extra/opus/sources b/extra/opus/sources new file mode 100644 index 00000000..d11f0722 --- /dev/null +++ b/extra/opus/sources @@ -0,0 +1 @@ +https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz diff --git a/extra/opus/version b/extra/opus/version new file mode 100644 index 00000000..957d07e2 --- /dev/null +++ b/extra/opus/version @@ -0,0 +1 @@ +1.3.1 1 diff --git a/extra/popt/build b/extra/popt/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/extra/popt/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/extra/popt/checksums b/extra/popt/checksums new file mode 100644 index 00000000..e9a82a58 --- /dev/null +++ b/extra/popt/checksums @@ -0,0 +1 @@ +e728ed296fe9f069a0e005003c3d6b2dde3d9cad453422a10d6558616d304cc8 popt-1.16.tar.gz diff --git a/extra/popt/sources b/extra/popt/sources new file mode 100644 index 00000000..e1aab68b --- /dev/null +++ b/extra/popt/sources @@ -0,0 +1 @@ +https://fossies.org/linux/misc/popt-1.16.tar.gz diff --git a/extra/popt/version b/extra/popt/version new file mode 100644 index 00000000..d1d913ed --- /dev/null +++ b/extra/popt/version @@ -0,0 +1 @@ +1.16 1 diff --git a/extra/python/build b/extra/python/build new file mode 100755 index 00000000..19d7173b --- /dev/null +++ b/extra/python/build @@ -0,0 +1,19 @@ +#!/bin/sh -e + +patch -p1 < python3-always-pip.patch + +./configure \ + --prefix=/usr \ + --enable-shared \ + --with-system-expat \ + --with-system-ffi \ + --with-ensurepip=yes + +make +make DESTDIR="$1" install + +ln -s python3 "$1/usr/bin/python" +ln -s pip3 "$1/usr/bin/pip" + +# Make static library writable. +chmod -v u+w "$1/usr/lib/libpython"* diff --git a/extra/python/checksums b/extra/python/checksums new file mode 100644 index 00000000..50298dba --- /dev/null +++ b/extra/python/checksums @@ -0,0 +1,2 @@ +b356244e13fb5491da890b35b13b2118c3122977c2cd825e3eb6e7d462030d84 Python-3.8.0.tar.xz +1a184c64f85d7a2fb57642135ea298ddd005684c5bd3e601b932cf31b82b9417 python3-always-pip.patch diff --git a/extra/python/depends b/extra/python/depends new file mode 100644 index 00000000..f5fadfec --- /dev/null +++ b/extra/python/depends @@ -0,0 +1,5 @@ +bzip2 +expat +libffi +sqlite +zlib diff --git a/extra/python/patches/python3-always-pip.patch b/extra/python/patches/python3-always-pip.patch new file mode 100644 index 00000000..91789c98 --- /dev/null +++ b/extra/python/patches/python3-always-pip.patch @@ -0,0 +1,13 @@ +diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py +index 526dfd0..d85dc33 100644 +--- a/Lib/ensurepip/__init__.py ++++ b/Lib/ensurepip/__init__.py +@@ -104,7 +104,7 @@ def _bootstrap(*, root=None, upgrade=False, user=False, + additional_paths.append(os.path.join(tmpdir, wheel_name)) + + # Construct the arguments to be passed to the pip command +- args = ["install", "--no-index", "--find-links", tmpdir] ++ args = ["install", "-I", "--no-index", "--find-links", tmpdir] + if root: + args += ["--root", root] + if upgrade: diff --git a/extra/python/sources b/extra/python/sources new file mode 100644 index 00000000..63dc186b --- /dev/null +++ b/extra/python/sources @@ -0,0 +1,2 @@ +https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tar.xz +patches/python3-always-pip.patch diff --git a/extra/python/version b/extra/python/version new file mode 100644 index 00000000..2af7c7b2 --- /dev/null +++ b/extra/python/version @@ -0,0 +1 @@ +3.8.0 1 diff --git a/extra/python2/build b/extra/python2/build new file mode 100755 index 00000000..3b3866ff --- /dev/null +++ b/extra/python2/build @@ -0,0 +1,14 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --without-ensurepip + +make +make DESTDIR="$1" install + +rm "$1/usr/bin/2to3" +rm "$1/usr/bin/python" + +# Make static library writable. +chmod -v u+w "$1/usr/lib/libpython"*.a diff --git a/extra/python2/checksums b/extra/python2/checksums new file mode 100644 index 00000000..01c6883e --- /dev/null +++ b/extra/python2/checksums @@ -0,0 +1 @@ +4d43f033cdbd0aa7b7023c81b0e986fd11e653b5248dac9144d508f11812ba41 Python-2.7.17.tar.xz diff --git a/extra/python2/depends b/extra/python2/depends new file mode 100644 index 00000000..4711f7dd --- /dev/null +++ b/extra/python2/depends @@ -0,0 +1,3 @@ +bzip2 +sqlite +zlib diff --git a/extra/python2/sources b/extra/python2/sources new file mode 100644 index 00000000..af09d116 --- /dev/null +++ b/extra/python2/sources @@ -0,0 +1 @@ +https://www.python.org/ftp/python/2.7.17/Python-2.7.17.tar.xz diff --git a/extra/python2/version b/extra/python2/version new file mode 100644 index 00000000..6b274355 --- /dev/null +++ b/extra/python2/version @@ -0,0 +1 @@ +2.7.17 1 diff --git a/extra/rust/build b/extra/rust/build new file mode 100755 index 00000000..f02d3b3e --- /dev/null +++ b/extra/rust/build @@ -0,0 +1,56 @@ +#!/bin/sh -e + +# This package mimics the download process of rust's 'x.py' +# bootstrap library to allow for the removal of the internet +# connection requirement per build further enabling checksums +# and signature verification by KISS. +{ + cache_dir=build/cache/2019-09-26 + mkdir -p "$cache_dir" + + for tarball in *.tar.gz\?no-extract; do + mv -f "$tarball" "$cache_dir/${tarball%%\?no-extract}" + done +} + +patch -p1 < musl-libressl.patch + +# 'rust' checksums files in 'vendor/', but we patch a few files. +for vendor in libc openssl-sys; do + sed -i 's/\("files":{\)[^}]*/\1/' "vendor/$vendor/.cargo-checksum.json" +done + +cat > config.toml <<EOF +[llvm] +link-shared = true + +[build] +build = "x86_64-unknown-linux-musl" +host = [ "x86_64-unknown-linux-musl" ] +target = [ "x86_64-unknown-linux-musl" ] +docs = false +extended = true +submodules = false +python = "python3" +locked-deps = true +vendor = true + +[install] +prefix = "/usr" + +[rust] +channel = "stable" +rpath = false +codegen-units = 1 +debuginfo-level = 0 +backtrace = false +jemalloc = false +codegen-tests = false + +[target.x86_64-unknown-linux-musl] +llvm-config = "/usr/bin/llvm-config" +crt-static = false +EOF + +python3 ./x.py build -j "$(nproc)" +DESTDIR="$1" python3 ./x.py install diff --git a/extra/rust/checksums b/extra/rust/checksums new file mode 100644 index 00000000..6570ccd3 --- /dev/null +++ b/extra/rust/checksums @@ -0,0 +1,5 @@ +b4a1f6b6a93931f270691aba4fc85eee032fecda973e6b9c774cd06857609357 rustc-1.39.0-src.tar.gz +56b87fdca1f41b634285593cae42fdbd5fe9632ef502336679362b283ed53c22 rust-std-1.38.0-x86_64-unknown-linux-musl.tar.gz?no-extract +bb0166cbb1d31bcb09d79224e7ac43a80d9448b7199b5392a3852b3ec71840aa rustc-1.38.0-x86_64-unknown-linux-musl.tar.gz?no-extract +bbf58bf638c5c4cf86caaa1bfe2835b3856d4ef46447c9942d5e59cc7654c5e4 cargo-0.39.0-x86_64-unknown-linux-musl.tar.gz?no-extract +122b5d9b83778882bdd64d40fea98982f7d1db510e09fc64a4ece5add4fd99a2 musl-libressl.patch diff --git a/extra/rust/depends b/extra/rust/depends new file mode 100644 index 00000000..058f23c8 --- /dev/null +++ b/extra/rust/depends @@ -0,0 +1,7 @@ +cmake make +curl make +libressl +llvm +python make +xz +zlib diff --git a/extra/rust/patches/musl-libressl.patch b/extra/rust/patches/musl-libressl.patch new file mode 100644 index 00000000..ed1f2404 --- /dev/null +++ b/extra/rust/patches/musl-libressl.patch @@ -0,0 +1,128 @@ +diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs +index 6ea32edfb..9d6d10f7f 100644 +--- a/src/bootstrap/compile.rs ++++ b/src/bootstrap/compile.rs +@@ -122,7 +122,7 @@ fn copy_third_party_objects(builder: &Builder<'_>, compiler: &Compiler, target: + // with a glibc-targeting toolchain, given we have the appropriate startup + // files. As those shipped with glibc won't work, copy the ones provided by + // musl so we have them on linux-gnu hosts. +- if target.contains("musl") { ++ if target.contains("noop") { + for &obj in &["crt1.o", "crti.o", "crtn.o"] { + builder.copy( + &builder.musl_root(target).unwrap().join("lib").join(obj), +diff --git a/src/bootstrap/sanity.rs b/src/bootstrap/sanity.rs +index bffe748f3..40f9f597f 100644 +--- a/src/bootstrap/sanity.rs ++++ b/src/bootstrap/sanity.rs +@@ -188,7 +188,7 @@ pub fn check(build: &mut Build) { + } + + // Make sure musl-root is valid +- if target.contains("musl") { ++ if target.contains("noop") { + // If this is a native target (host is also musl) and no musl-root is given, + // fall back to the system toolchain in /usr before giving up + if build.musl_root(*target).is_none() && build.config.build == *target { +diff --git a/src/librustc_target/spec/linux_musl_base.rs b/src/librustc_target/spec/linux_musl_base.rs +index e294e6398..17fecb3b2 100644 +--- a/src/librustc_target/spec/linux_musl_base.rs ++++ b/src/librustc_target/spec/linux_musl_base.rs +@@ -26,7 +26,7 @@ pub fn opts() -> TargetOptions { + base.post_link_objects_crt.push("crtn.o".to_string()); + + // These targets statically link libc by default +- base.crt_static_default = true; ++ base.crt_static_default = false; + // These targets allow the user to choose between static and dynamic linking. + base.crt_static_respected = true; + +diff --git a/src/libunwind/build.rs b/src/libunwind/build.rs +index f24d957d6..4632212fd 100644 +--- a/src/libunwind/build.rs ++++ b/src/libunwind/build.rs +@@ -10,7 +10,7 @@ fn main() { + // Build the unwinding from libunwind C/C++ source code. + llvm_libunwind::compile(); + } else if target.contains("linux") { +- if target.contains("musl") { ++ if target.contains("noop") { + // linking for musl is handled in lib.rs + llvm_libunwind::compile(); + } else if !target.contains("android") { +diff --git a/src/libunwind/lib.rs b/src/libunwind/lib.rs +index 8d9164471..3adaaf43d 100644 +--- a/src/libunwind/lib.rs ++++ b/src/libunwind/lib.rs +@@ -20,7 +20,7 @@ cfg_if::cfg_if! { + } + } + +-#[cfg(target_env = "musl")] ++#[cfg(target_env = "noop")] + #[link(name = "unwind", kind = "static", cfg(target_feature = "crt-static"))] + #[link(name = "gcc_s", cfg(not(target_feature = "crt-static")))] + extern {} +diff --git a/vendor/libc/src/unix/mod.rs b/vendor/libc/src/unix/mod.rs +index 721d24116..26bf271cd 100644 +--- a/vendor/libc/src/unix/mod.rs ++++ b/vendor/libc/src/unix/mod.rs +@@ -296,7 +296,7 @@ cfg_if! { + } else if #[cfg(feature = "std")] { + // cargo build, don't pull in anything extra as the libstd dep + // already pulls in all libs. +- } else if #[cfg(target_env = "musl")] { ++ } else if #[cfg(target_env = "noop")] { + #[cfg_attr(feature = "rustc-dep-of-std", + link(name = "c", kind = "static", + cfg(target_feature = "crt-static")))] +diff --git a/vendor/openssl-sys/build/main.rs b/vendor/openssl-sys/build/main.rs +index 02b93b90a..27deca5fe 100644 +--- a/vendor/openssl-sys/build/main.rs ++++ b/vendor/openssl-sys/build/main.rs +@@ -183,27 +183,30 @@ See rust-openssl README for more information: + if let Some(libressl_version) = libressl_version { + println!("cargo:libressl_version_number={:x}", libressl_version); + ++ let major = (libressl_version >> 28) as u8; + let minor = (libressl_version >> 20) as u8; + let fix = (libressl_version >> 12) as u8; +- let (minor, fix) = match (minor, fix) { +- (5, 0) => ('5', '0'), +- (5, 1) => ('5', '1'), +- (5, 2) => ('5', '2'), +- (5, _) => ('5', 'x'), +- (6, 0) => ('6', '0'), +- (6, 1) => ('6', '1'), +- (6, 2) => ('6', '2'), +- (6, _) => ('6', 'x'), +- (7, _) => ('7', 'x'), +- (8, 0) => ('8', '0'), +- (8, 1) => ('8', '1'), +- (8, _) => ('8', 'x'), +- (9, 0) => ('9', '0'), ++ let (major, minor, fix) = match (major, minor, fix) { ++ (2, 5, 0) => ('2', '5', '0'), ++ (2, 5, 1) => ('2', '5', '1'), ++ (2, 5, 2) => ('2', '5', '2'), ++ (2, 5, _) => ('2', '5', 'x'), ++ (2, 6, 0) => ('2', '6', '0'), ++ (2, 6, 1) => ('2', '6', '1'), ++ (2, 6, 2) => ('2', '6', '2'), ++ (2, 6, _) => ('2', '6', 'x'), ++ (2, 7, _) => ('2', '7', 'x'), ++ (2, 8, 0) => ('2', '8', '0'), ++ (2, 8, 1) => ('2', '8', '1'), ++ (3, 0, _) => ('3', '0', 'x'), ++ (2, 9, 0) => ('2', '9', '0'), ++ (2, 9, _) => ('2', '9', 'x'), ++ (3, 0, 0) => ('3', '0', '0'), + _ => version_error(), + }; + + println!("cargo:libressl=true"); +- println!("cargo:libressl_version=2{}{}", minor, fix); ++ println!("cargo:libressl_version={}{}{}", major, minor, fix); + println!("cargo:version=101"); + Version::Libressl + } else { diff --git a/extra/rust/sources b/extra/rust/sources new file mode 100644 index 00000000..a1e63232 --- /dev/null +++ b/extra/rust/sources @@ -0,0 +1,5 @@ +https://static.rust-lang.org/dist/rustc-1.39.0-src.tar.gz +https://static.rust-lang.org/dist/2019-09-26/rust-std-1.38.0-x86_64-unknown-linux-musl.tar.gz?no-extract +https://static.rust-lang.org/dist/2019-09-26/rustc-1.38.0-x86_64-unknown-linux-musl.tar.gz?no-extract +https://static.rust-lang.org/dist/2019-09-26/cargo-0.39.0-x86_64-unknown-linux-musl.tar.gz?no-extract +patches/musl-libressl.patch diff --git a/extra/rust/version b/extra/rust/version new file mode 100644 index 00000000..07fabd51 --- /dev/null +++ b/extra/rust/version @@ -0,0 +1 @@ +1.39.0 1 diff --git a/extra/samurai/build b/extra/samurai/build new file mode 100755 index 00000000..1dd11b38 --- /dev/null +++ b/extra/samurai/build @@ -0,0 +1,6 @@ +#!/bin/sh -e + +make PREFIX=/usr +make PREFIX=/usr DESTDIR="$1" install + +ln -s samu "$1/usr/bin/ninja" diff --git a/extra/samurai/checksums b/extra/samurai/checksums new file mode 100644 index 00000000..a3da810f --- /dev/null +++ b/extra/samurai/checksums @@ -0,0 +1 @@ +e079e8de3b07ba0f1fffe2dff31c1fcb3be357c523abc6937108635a081a11f0 samurai-0.7.tar.gz diff --git a/extra/samurai/sources b/extra/samurai/sources new file mode 100644 index 00000000..b3b4891c --- /dev/null +++ b/extra/samurai/sources @@ -0,0 +1 @@ +https://github.com/michaelforney/samurai/releases/download/0.7/samurai-0.7.tar.gz diff --git a/extra/samurai/version b/extra/samurai/version new file mode 100644 index 00000000..a7542609 --- /dev/null +++ b/extra/samurai/version @@ -0,0 +1 @@ +0.7 1 diff --git a/extra/shared-mime-info/build b/extra/shared-mime-info/build new file mode 100755 index 00000000..58dddbe2 --- /dev/null +++ b/extra/shared-mime-info/build @@ -0,0 +1,54 @@ +#!/bin/sh -e +# +# We bypass the build system entirely as it has +# a mandatory dependency on gettext. + +# Grab the package version. +read -r version _ < "${0%/*}/version" + +mkdir -p "$1/usr/share/mime/packages" \ + "$1/usr/share/pkgconfig" \ + "$1/usr/bin" + +# Install with only English support. +sed -e 's/_comment/comment/g' freedesktop.org.xml.in \ + > "$1/usr/share/mime/packages/freedesktop.org.xml" + +# Replace markers in the file. +sed -e 's|@prefix@|/usr|' -e "s|@VERSION@|$version|" shared-mime-info.pc.in \ + > "$1/usr/share/pkgconfig/shared-mime-info.pc" + +# Define our own config.h statically. +cat << EOF > config.h +#define HAVE_BIND_TEXTDOMAIN_CODESET 1 +#define HAVE_FDATASYNC 1 +#define HAVE_GETTEXT 0 +#define HAVE_INTTYPES_H 1 +#define HAVE_LC_MESSAGES 1 +#define HAVE_LOCALE_H 1 +#define HAVE_MEMORY_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_STRING_H 1 +#define HAVE_SYS_STAT_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_UNISTD_H 1 +#define PACKAGE "shared-mime-info" +#define PACKAGE_BUGREPORT "" +#define PACKAGE_NAME "shared-mime-info" +#define PACKAGE_STRING "shared-mime-info $version" +#define PACKAGE_TARNAME "shared-mime-info" +#define PACKAGE_URL "" +#define PACKAGE_VERSION "$version" +#define STDC_HEADERS 1 +#define VERSION "$version" +EOF + +# Fix config.h include. +sed -i 's/<config.h>/"config.h"/' update-mime-database.c + +# shellcheck disable=2046 +"${CC:-gcc}" -o "$1/usr/bin/update-mime-database" \ + $(pkg-config --libs --cflags glib-2.0 libxml-2.0) \ + update-mime-database.c diff --git a/extra/shared-mime-info/checksums b/extra/shared-mime-info/checksums new file mode 100644 index 00000000..4c76dfe4 --- /dev/null +++ b/extra/shared-mime-info/checksums @@ -0,0 +1 @@ +2df77d547fa0548def38614f318282bc9937e7bde5f139d35053b605f7fd34df Release-1-15.tar.gz diff --git a/extra/shared-mime-info/depends b/extra/shared-mime-info/depends new file mode 100644 index 00000000..4919fada --- /dev/null +++ b/extra/shared-mime-info/depends @@ -0,0 +1,4 @@ +glib +libxml2 +xz +zlib diff --git a/extra/shared-mime-info/post-install b/extra/shared-mime-info/post-install new file mode 100755 index 00000000..e9dffaad --- /dev/null +++ b/extra/shared-mime-info/post-install @@ -0,0 +1,3 @@ +#!/bin/sh -e + +update-mime-database -V /usr/share/mime diff --git a/extra/shared-mime-info/sources b/extra/shared-mime-info/sources new file mode 100644 index 00000000..4ad8576c --- /dev/null +++ b/extra/shared-mime-info/sources @@ -0,0 +1 @@ +https://github.com/freedesktop/xdg-shared-mime-info/archive/Release-1-15.tar.gz diff --git a/extra/shared-mime-info/version b/extra/shared-mime-info/version new file mode 100644 index 00000000..b5a3e89c --- /dev/null +++ b/extra/shared-mime-info/version @@ -0,0 +1 @@ +1.15 1 diff --git a/extra/sqlite/build b/extra/sqlite/build new file mode 100755 index 00000000..b5c79fd1 --- /dev/null +++ b/extra/sqlite/build @@ -0,0 +1,12 @@ +#!/bin/sh -e + +sed -i 's/ -ltinfo//g' configure + +./configure \ + --prefix=/usr \ + --enable-threadsafe \ + --enable-dynamic-extensions \ + --enable-fts5 + +make -j 1 +make DESTDIR="$1" install diff --git a/extra/sqlite/checksums b/extra/sqlite/checksums new file mode 100644 index 00000000..a0bf9e77 --- /dev/null +++ b/extra/sqlite/checksums @@ -0,0 +1 @@ +8c5a50db089bd2a1b08dbc5b00d2027602ca7ff238ba7658fabca454d4298e60 sqlite-autoconf-3300100.tar.gz diff --git a/extra/sqlite/depends b/extra/sqlite/depends new file mode 100644 index 00000000..f22003e8 --- /dev/null +++ b/extra/sqlite/depends @@ -0,0 +1 @@ +zlib diff --git a/extra/sqlite/sources b/extra/sqlite/sources new file mode 100644 index 00000000..5e0c7a82 --- /dev/null +++ b/extra/sqlite/sources @@ -0,0 +1 @@ +https://sqlite.org/2019/sqlite-autoconf-3300100.tar.gz diff --git a/extra/sqlite/version b/extra/sqlite/version new file mode 100644 index 00000000..9fc15b14 --- /dev/null +++ b/extra/sqlite/version @@ -0,0 +1 @@ +3.30.1 1 diff --git a/extra/sudo/build b/extra/sudo/build new file mode 100755 index 00000000..64dd511c --- /dev/null +++ b/extra/sudo/build @@ -0,0 +1,20 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --disable-pam-session \ + --disable-root-mailer \ + --enable-pie \ + --without-pam \ + --without-sendmail \ + --with-ignore-dot \ + --with-insults=disabled \ + --with-logfac=auth \ + --with-passprompt="[sudo] password for %p: " + +make +make \ + DESTDIR="$1" \ + install_uid="$(id -u)" \ + install_gid="$(id -g)" \ + install diff --git a/extra/sudo/checksums b/extra/sudo/checksums new file mode 100644 index 00000000..5613e8ec --- /dev/null +++ b/extra/sudo/checksums @@ -0,0 +1 @@ +ce53ffac9604e23321334d8ba8ac59ded2bcf624fdb9dbde097ab2049bf29c7c sudo-1.8.29.tar.gz diff --git a/extra/sudo/depends b/extra/sudo/depends new file mode 100644 index 00000000..f22003e8 --- /dev/null +++ b/extra/sudo/depends @@ -0,0 +1 @@ +zlib diff --git a/extra/sudo/sources b/extra/sudo/sources new file mode 100644 index 00000000..3fa1c188 --- /dev/null +++ b/extra/sudo/sources @@ -0,0 +1 @@ +https://www.sudo.ws/dist/sudo-1.8.29.tar.gz diff --git a/extra/sudo/version b/extra/sudo/version new file mode 100644 index 00000000..fda497b7 --- /dev/null +++ b/extra/sudo/version @@ -0,0 +1 @@ +1.8.29 1 diff --git a/extra/tiff/build b/extra/tiff/build new file mode 100755 index 00000000..eb4850d7 --- /dev/null +++ b/extra/tiff/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --enable-cxx \ + --without-x + +make +make DESTDIR="$1" install diff --git a/extra/tiff/checksums b/extra/tiff/checksums new file mode 100644 index 00000000..a08eb7db --- /dev/null +++ b/extra/tiff/checksums @@ -0,0 +1 @@ +5d29f32517dadb6dbcd1255ea5bbc93a2b54b94fbf83653b4d65c7d6775b8634 tiff-4.1.0.tar.gz diff --git a/extra/tiff/depends b/extra/tiff/depends new file mode 100644 index 00000000..59e71142 --- /dev/null +++ b/extra/tiff/depends @@ -0,0 +1,3 @@ +libjpeg-turbo +xz +zlib diff --git a/extra/tiff/sources b/extra/tiff/sources new file mode 100644 index 00000000..c031708b --- /dev/null +++ b/extra/tiff/sources @@ -0,0 +1 @@ +https://download.osgeo.org/libtiff/tiff-4.1.0.tar.gz diff --git a/extra/tiff/version b/extra/tiff/version new file mode 100644 index 00000000..1bc2766f --- /dev/null +++ b/extra/tiff/version @@ -0,0 +1 @@ +4.1.0 1 diff --git a/extra/tzdata/build b/extra/tzdata/build new file mode 100755 index 00000000..369842d0 --- /dev/null +++ b/extra/tzdata/build @@ -0,0 +1,13 @@ +#!/bin/sh -e + +pkg_dir=$1 + +make CC="${CC:-gcc}" +make DESTDIR="$1" install + +set -- africa asia australasia europe northamerica southamerica + +./zic -d "$pkg_dir/usr/share/zoneinfo" "$@" +./zic -d "$pkg_dir/usr/share/zoneinfo/posix" "$@" +./zic -d "$pkg_dir/usr/share/zoneinfo/right" -L leapseconds "$@" +./zic -d "$pkg_dir/usr/share/zoneinfo" -p America/New_York diff --git a/extra/tzdata/checksums b/extra/tzdata/checksums new file mode 100644 index 00000000..dbdca45e --- /dev/null +++ b/extra/tzdata/checksums @@ -0,0 +1 @@ +38b1f7c7a050daa14fb07f6b72cdde1fc895fece40758d4d55736847041ad9e2 2019c.tar.gz diff --git a/extra/tzdata/sources b/extra/tzdata/sources new file mode 100644 index 00000000..f809f894 --- /dev/null +++ b/extra/tzdata/sources @@ -0,0 +1 @@ +https://github.com/eggert/tz/archive/2019c.tar.gz diff --git a/extra/tzdata/version b/extra/tzdata/version new file mode 100644 index 00000000..6e4135ec --- /dev/null +++ b/extra/tzdata/version @@ -0,0 +1 @@ +2019c 1 diff --git a/extra/vim/build b/extra/vim/build new file mode 100755 index 00000000..f6149590 --- /dev/null +++ b/extra/vim/build @@ -0,0 +1,21 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --enable-cscope \ + --enable-multibyte \ + --with-tlib=ncursesw \ + --with-ex-name=vim-ex \ + --with-view-name=vim-view \ + --disable-perlinterp \ + --disable-pythoninterp \ + --disable-rubyinterp \ + --disable-netbeans \ + --disable-gpm \ + --disable-hangulinput \ + --disable-xim \ + --disable-gui \ + --without-x + +make +make DESTDIR="$1" install diff --git a/extra/vim/checksums b/extra/vim/checksums new file mode 100644 index 00000000..9251fd31 --- /dev/null +++ b/extra/vim/checksums @@ -0,0 +1 @@ +a1c8078fe14b07dd874ac82d5776bfab1d325e8d792e7b9b1fd3475868285130 v8.1.2352.tar.gz diff --git a/extra/vim/depends b/extra/vim/depends new file mode 100644 index 00000000..6a470ffa --- /dev/null +++ b/extra/vim/depends @@ -0,0 +1 @@ +ncurses diff --git a/extra/vim/sources b/extra/vim/sources new file mode 100644 index 00000000..6c1914e4 --- /dev/null +++ b/extra/vim/sources @@ -0,0 +1 @@ +https://github.com/vim/vim/archive/v8.1.2352.tar.gz diff --git a/extra/vim/version b/extra/vim/version new file mode 100644 index 00000000..1674897b --- /dev/null +++ b/extra/vim/version @@ -0,0 +1 @@ +8.1.2352 1 diff --git a/extra/x264/build b/extra/x264/build new file mode 100755 index 00000000..73cc54a0 --- /dev/null +++ b/extra/x264/build @@ -0,0 +1,13 @@ +#!/bin/sh -e + +patch -p1 < x264-no-bash.patch + +./configure \ + --prefix=/usr \ + --disable-swscale \ + --enable-static \ + --enable-pic \ + --enable-shared + +make +make DESTDIR="$1" install diff --git a/extra/x264/checksums b/extra/x264/checksums new file mode 100644 index 00000000..2243eefc --- /dev/null +++ b/extra/x264/checksums @@ -0,0 +1,2 @@ +404e7ba61123720a7b2cc45356ace6859860ef4ce3503758465e92c1ce11995e x264-snapshot-20190812-2245-stable.tar.bz2 +a78a518c3685813fdfdc8813acd48e292968892e6ff5ea60d91f5c514c35acee x264-no-bash.patch diff --git a/extra/x264/depends b/extra/x264/depends new file mode 100644 index 00000000..f56f4f37 --- /dev/null +++ b/extra/x264/depends @@ -0,0 +1,2 @@ +nasm make +perl make diff --git a/extra/x264/patches/x264-no-bash.patch b/extra/x264/patches/x264-no-bash.patch new file mode 100644 index 00000000..07e8dd2b --- /dev/null +++ b/extra/x264/patches/x264-no-bash.patch @@ -0,0 +1,222 @@ +diff --git a/configure b/configure-posix +index 3cf63e0..1e1fce5 100755 +--- a/configure-posix ++++ b/configure +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + + if test x"$1" = x"-h" -o x"$1" = x"--help" ; then + cat <<EOF +@@ -59,7 +59,7 @@ exit 1 + fi + + log_check() { +- echo -n "checking $1... " >> config.log ++ echo "checking $1... " >> config.log + } + + log_ok() { +@@ -78,13 +78,12 @@ cc_cflags() { + # several non gcc compilers issue an incredibly large number of warnings on high warning levels, + # suppress them by reducing the warning level rather than having to use #pragmas + for arg in $*; do +- [[ "$arg" = -falign-loops* ]] && arg= ++ case $arg in ++ -falign-loops*|-mpreferred-stack-boundary*|-l*|-L*) arg= ++ esac + [ "$arg" = -fno-tree-vectorize ] && arg= + [ "$arg" = -Wshadow ] && arg= + [ "$arg" = -Wno-maybe-uninitialized ] && arg= +- [[ "$arg" = -mpreferred-stack-boundary* ]] && arg= +- [[ "$arg" = -l* ]] && arg= +- [[ "$arg" = -L* ]] && arg= + if [ $compiler_style = MS ]; then + [ "$arg" = -ffast-math ] && arg="-fp:fast" + [ "$arg" = -Wall ] && arg= +@@ -100,14 +99,14 @@ cc_cflags() { + fi + [ $compiler = CL -a "$arg" = -O3 ] && arg=-O2 + +- [ -n "$arg" ] && echo -n "$arg " ++ [ -n "$arg" ] && printf %s "$arg " + done + } + + cl_ldflags() { + for arg in $*; do +- arg=${arg/LIBPATH/libpath} +- [ "${arg#-libpath:}" == "$arg" -a "${arg#-l}" != "$arg" ] && arg=${arg#-l}.lib ++ arg=$(echo "$arg" | sed -e 's/LIBPATH/libpath/') ++ [ "${arg#-libpath:}" = "$arg" -a "${arg#-l}" != "$arg" ] && arg=${arg#-l}.lib + [ "${arg#-L}" != "$arg" ] && arg=-libpath:${arg#-L} + [ "$arg" = -Wl,--large-address-aware ] && arg=-largeaddressaware + [ "$arg" = -s ] && arg= +@@ -116,14 +115,17 @@ cl_ldflags() { + [ "$arg" = -Werror ] && arg= + [ "$arg" = -Wshadow ] && arg= + [ "$arg" = -Wmaybe-uninitialized ] && arg= +- [[ "$arg" = -Qdiag-error* ]] && arg= + +- arg=${arg/pthreadGC/pthreadVC} ++ case $arg in ++ -Qdiag-error*) arg= ++ esac ++ ++ arg=$(echo "$arg" | sed -e 's/pthreadGC/pthreadVC/') + [ "$arg" = avifil32.lib ] && arg=vfw32.lib + [ "$arg" = gpac_static.lib ] && arg=libgpac_static.lib + [ "$arg" = x264.lib ] && arg=libx264.lib + +- [ -n "$arg" ] && echo -n "$arg " ++ [ -n "$arg" ] && printf %s "$arg " + done + } + +@@ -180,7 +182,7 @@ cpp_check() { + for arg in $1; do + echo "#include <$arg>" >> conftest.c + done +- echo -e "#if !($3) \n#error $4 \n#endif " >> conftest.c ++ printf '%b\n' "#if !($3) \n#error $4 \n#endif " >> conftest.c + if [ $compiler_style = MS ]; then + cpp_cmd="$CC conftest.c $(cc_cflags $CFLAGS $2) -P" + else +@@ -329,11 +331,15 @@ rm -rf conftest* + + # Construct a path to the specified directory relative to the working directory + relative_path() { +- local base="${PWD%/}" +- local path="$(cd "$1" >/dev/null; printf '%s/.' "${PWD%/}")" +- local up='' ++ base="${PWD%/}" ++ path="$(cd "$1" >/dev/null; printf '%s/.' "${PWD%/}")" ++ up='' ++ ++ while :; do ++ case $path in ++ "$base/"*) break ;; ++ esac + +- while [[ $path != "$base/"* ]]; do + base="${base%/*}" + up="../$up" + done +@@ -564,48 +570,6 @@ trap 'rm -rf conftest*' EXIT + # test for use of compilers that require specific handling + cc_base="$(basename "$CC")" + QPRE="-" +-if [[ $host_os = mingw* || $host_os = cygwin* ]]; then +- if [[ "$cc_base" = icl || "$cc_base" = icl[\ .]* ]]; then +- # Windows Intel Compiler creates dependency generation with absolute Windows paths, Cygwin's make does not support Windows paths. +- [[ $host_os = cygwin* ]] && die "Windows Intel Compiler support requires MSYS" +- compiler=ICL +- compiler_style=MS +- CFLAGS="$CFLAGS -Qstd=c99 -nologo -Qms0 -DHAVE_STRING_H -I\$(SRCPATH)/extras" +- QPRE="-Q" +- cpp_check '' '' '_MSC_VER >= 1400' || die "Windows Intel Compiler support requires Visual Studio 2005 or newer" +- if cpp_check '' '' 'defined(_M_AMD64) || defined(_M_X64)' ; then +- host_cpu=x86_64 +- elif cpp_check '' '' 'defined(_M_IX86)' ; then +- host_cpu=i486 +- fi +- if cc_check '' -Qdiag-error:10006,10157 ; then +- CHECK_CFLAGS="$CHECK_CFLAGS -Qdiag-error:10006,10157" +- fi +- elif [[ "$cc_base" = cl || "$cc_base" = cl[\ .]* ]]; then +- # Standard Microsoft Visual Studio +- compiler=CL +- compiler_style=MS +- CFLAGS="$CFLAGS -nologo -GS- -DHAVE_STRING_H -I\$(SRCPATH)/extras" +- cpp_check '' '' '_MSC_VER > 1800 || (_MSC_VER == 1800 && _MSC_FULL_VER >= 180030324)' || die "Microsoft Visual Studio support requires Visual Studio 2013 Update 2 or newer" +- if cpp_check '' '' 'defined(_M_AMD64) || defined(_M_X64)' ; then +- host_cpu=x86_64 +- elif cpp_check '' '' 'defined(_M_IX86)' ; then +- host_cpu=i486 +- elif cpp_check '' '' 'defined(_M_ARM64)' ; then +- host_cpu=aarch64 +- elif cpp_check '' '' 'defined(_M_ARM)' ; then +- host_cpu=arm +- fi +- else +- # MinGW uses broken pre-VS2015 Microsoft printf functions unless it's told to use the POSIX ones. +- CFLAGS="$CFLAGS -D_POSIX_C_SOURCE=200112L" +- fi +-else +- if [[ "$cc_base" = icc || "$cc_base" = icc[\ .]* ]]; then +- AR="xiar" +- compiler=ICC +- fi +-fi + + if [ $compiler = GNU ]; then + if cc_check '' -Werror=unknown-warning-option ; then +@@ -653,18 +617,6 @@ case $host_os in + define HAVE_MALLOC_H + libm="-lm" + ;; +- cygwin*|mingw*|msys*) +- EXE=".exe" +- if [[ $host_os = cygwin* ]] && cpp_check "" "" "defined(__CYGWIN__)" ; then +- SYS="CYGWIN" +- define HAVE_MALLOC_H +- else +- SYS="WINDOWS" +- DEVNULL="NUL" +- cc_check '' -lshell32 && LDFLAGSCLI="$LDFLAGSCLI -lshell32" +- [ $compiler = GNU ] && RC="${RC-${cross_prefix}windres}" || RC="${RC-rc.exe}" +- fi +- ;; + sunos*|solaris*) + SYS="SunOS" + define HAVE_MALLOC_H +@@ -705,30 +657,6 @@ LDFLAGS="$LDFLAGS $libm" + stack_alignment=4 + case $host_cpu in + i*86) +- ARCH="X86" +- AS="${AS-nasm}" +- AS_EXT=".asm" +- ASFLAGS="$ASFLAGS -DARCH_X86_64=0 -I\$(SRCPATH)/common/x86/" +- if [ $compiler = GNU ]; then +- if [[ "$asm" == auto && "$CFLAGS" != *-march* ]]; then +- CFLAGS="$CFLAGS -march=i686" +- fi +- if [[ "$asm" == auto && "$CFLAGS" != *-mfpmath* ]]; then +- CFLAGS="$CFLAGS -mfpmath=sse -msse -msse2" +- fi +- CFLAGS="-m32 $CFLAGS" +- LDFLAGS="-m32 $LDFLAGS" +- fi +- if [ "$SYS" = MACOSX ]; then +- ASFLAGS="$ASFLAGS -f macho32 -DPREFIX" +- elif [ "$SYS" = WINDOWS -o "$SYS" = CYGWIN ]; then +- ASFLAGS="$ASFLAGS -f win32 -DPREFIX" +- LDFLAGS="$LDFLAGS -Wl,--large-address-aware" +- [ $compiler = GNU ] && LDFLAGS="$LDFLAGS -Wl,--dynamicbase,--nxcompat,--tsaware" +- [ $compiler = GNU ] && RCFLAGS="--target=pe-i386 $RCFLAGS" +- else +- ASFLAGS="$ASFLAGS -f elf32" +- fi + ;; + x86_64) + ARCH="X86_64" +@@ -931,7 +859,7 @@ fi + + if [ $asm = auto -a $ARCH = ARM ] ; then + # set flags so neon is built by default +- [ $compiler == CL ] || echo $CFLAGS | grep -Eq '(-mcpu|-march|-mfpu)' || CFLAGS="$CFLAGS -mcpu=cortex-a8 -mfpu=neon" ++ [ $compiler = CL ] || echo $CFLAGS | grep -Eq '(-mcpu|-march|-mfpu)' || CFLAGS="$CFLAGS -mcpu=cortex-a8 -mfpu=neon" + + cc_check '' '' '__asm__("add r0, r1, r2");' && define HAVE_ARM_INLINE_ASM + if [ $compiler = CL ] && cpp_check '' '' 'defined(_M_ARM) && _M_ARM >= 7' ; then +@@ -1576,7 +1504,8 @@ cat conftest.log >> config.log + cat conftest.log + + [ "$SRCPATH" != "." ] && ln -sf ${SRCPATH}/Makefile ./Makefile +-mkdir -p common/{aarch64,arm,mips,ppc,x86} encoder extras filters/video input output tools ++mkdir -p common/aarch64 common/arm common/mips common/ppc common/x86 ++mkdir -p encoder extras filters/video input output tools + + echo + echo "You can run 'make' or 'make fprofiled' now." diff --git a/extra/x264/sources b/extra/x264/sources new file mode 100644 index 00000000..ec3be5cb --- /dev/null +++ b/extra/x264/sources @@ -0,0 +1,2 @@ +https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20190812-2245-stable.tar.bz2 +patches/x264-no-bash.patch diff --git a/extra/x264/version b/extra/x264/version new file mode 100644 index 00000000..c416a334 --- /dev/null +++ b/extra/x264/version @@ -0,0 +1 @@ +20190812-2245 4 diff --git a/extra/x265/build b/extra/x265/build new file mode 100755 index 00000000..2bc1c919 --- /dev/null +++ b/extra/x265/build @@ -0,0 +1,10 @@ +#!/bin/sh -e + +export DESTDIR="$1" + +cmake source \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=Release + +cmake --build . +cmake --install . diff --git a/extra/x265/checksums b/extra/x265/checksums new file mode 100644 index 00000000..2ee5aac0 --- /dev/null +++ b/extra/x265/checksums @@ -0,0 +1 @@ +fb9badcf92364fd3567f8b5aa0e5e952aeea7a39a2b864387cec31e3b58cbbcc x265_3.2.1.tar.gz diff --git a/extra/x265/depends b/extra/x265/depends new file mode 100644 index 00000000..8e82f959 --- /dev/null +++ b/extra/x265/depends @@ -0,0 +1,2 @@ +cmake make +nasm make diff --git a/extra/x265/sources b/extra/x265/sources new file mode 100644 index 00000000..2e1eeee4 --- /dev/null +++ b/extra/x265/sources @@ -0,0 +1 @@ +https://bitbucket.org/multicoreware/x265/downloads/x265_3.2.1.tar.gz diff --git a/extra/x265/version b/extra/x265/version new file mode 100644 index 00000000..b7c90c2c --- /dev/null +++ b/extra/x265/version @@ -0,0 +1 @@ +3.2.1 1 diff --git a/extra/xvidcore/build b/extra/xvidcore/build new file mode 100755 index 00000000..ac4edecd --- /dev/null +++ b/extra/xvidcore/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +cd build/generic + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/extra/xvidcore/checksums b/extra/xvidcore/checksums new file mode 100644 index 00000000..2d965add --- /dev/null +++ b/extra/xvidcore/checksums @@ -0,0 +1 @@ +7c20f279f9d8e89042e85465d2bcb1b3130ceb1ecec33d5448c4589d78f010b4 xvidcore-1.3.5.tar.bz2 diff --git a/extra/xvidcore/depends b/extra/xvidcore/depends new file mode 100644 index 00000000..116f6b27 --- /dev/null +++ b/extra/xvidcore/depends @@ -0,0 +1 @@ +nasm make diff --git a/extra/xvidcore/sources b/extra/xvidcore/sources new file mode 100644 index 00000000..b6f08bba --- /dev/null +++ b/extra/xvidcore/sources @@ -0,0 +1 @@ +https://downloads.xvid.com/downloads/xvidcore-1.3.5.tar.bz2 diff --git a/extra/xvidcore/version b/extra/xvidcore/version new file mode 100644 index 00000000..a06f6a21 --- /dev/null +++ b/extra/xvidcore/version @@ -0,0 +1 @@ +1.3.5 1 diff --git a/extra/yasm/build b/extra/yasm/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/extra/yasm/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/extra/yasm/checksums b/extra/yasm/checksums new file mode 100644 index 00000000..ff95d85c --- /dev/null +++ b/extra/yasm/checksums @@ -0,0 +1 @@ +3dce6601b495f5b3d45b59f7d2492a340ee7e84b5beca17e48f862502bd5603f yasm-1.3.0.tar.gz diff --git a/extra/yasm/sources b/extra/yasm/sources new file mode 100644 index 00000000..f1b23c34 --- /dev/null +++ b/extra/yasm/sources @@ -0,0 +1 @@ +https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz diff --git a/extra/yasm/version b/extra/yasm/version new file mode 100644 index 00000000..0a2d7f2b --- /dev/null +++ b/extra/yasm/version @@ -0,0 +1 @@ +1.3.0 1 diff --git a/extra/zip/build b/extra/zip/build new file mode 100755 index 00000000..bb3316b4 --- /dev/null +++ b/extra/zip/build @@ -0,0 +1,12 @@ +#!/bin/sh -e + +make \ + prefix=/usr \ + CC="${CC:-gcc} $CFLAGS $CXXFLAGS" \ + -f unix/Makefile generic + +make \ + prefix="$1/usr" \ + MANDIR="$1/usr/share/man/man1" \ + -f unix/Makefile install + diff --git a/extra/zip/checksums b/extra/zip/checksums new file mode 100644 index 00000000..3337c644 --- /dev/null +++ b/extra/zip/checksums @@ -0,0 +1 @@ +f0e8bb1f9b7eb0b01285495a2699df3a4b766784c1765a8f1aeedf63c0806369 zip30.tar.gz diff --git a/extra/zip/depends b/extra/zip/depends new file mode 100644 index 00000000..7a457127 --- /dev/null +++ b/extra/zip/depends @@ -0,0 +1 @@ +bzip2 diff --git a/extra/zip/sources b/extra/zip/sources new file mode 100644 index 00000000..49a21688 --- /dev/null +++ b/extra/zip/sources @@ -0,0 +1 @@ +https://downloads.sourceforge.net/infozip/zip30.tar.gz diff --git a/extra/zip/version b/extra/zip/version new file mode 100644 index 00000000..f90f0a39 --- /dev/null +++ b/extra/zip/version @@ -0,0 +1 @@ +3.0 2 diff --git a/xorg/cairo/build b/xorg/cairo/build new file mode 100755 index 00000000..92dafa69 --- /dev/null +++ b/xorg/cairo/build @@ -0,0 +1,22 @@ +#!/bin/sh -e + +# Disable building 'cairo-sphinx'. +sed -i "s/BUILD_SPHINX_TRUE=/BUILD_SPHINX_TRUE='#'/" configure +sed -i "s/BUILD_SPHINX_FALSE='#'/BUILD_SPHINX_FALSE=/" configure + +./configure \ + --prefix=/usr \ + --disable-static \ + --enable-tee \ + --enable-gl \ + --enable-egl \ + --enable-xlib-xcb \ + --enable-xcb \ + --enable-xlib-xrender \ + --enable-xlib \ + --disable-trace \ + --disable-valgrind \ + --disable-gtk-doc-html + +make +make DESTDIR="$1" install diff --git a/xorg/cairo/checksums b/xorg/cairo/checksums new file mode 100644 index 00000000..a07be27b --- /dev/null +++ b/xorg/cairo/checksums @@ -0,0 +1 @@ +5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331 cairo-1.16.0.tar.xz diff --git a/xorg/cairo/depends b/xorg/cairo/depends new file mode 100644 index 00000000..c6a9632b --- /dev/null +++ b/xorg/cairo/depends @@ -0,0 +1,9 @@ +fontconfig +glib +libffi +libpng +libXext +libXrender +mesa +pixman +zlib diff --git a/xorg/cairo/sources b/xorg/cairo/sources new file mode 100644 index 00000000..e43c5aab --- /dev/null +++ b/xorg/cairo/sources @@ -0,0 +1 @@ +https://cairographics.org/releases/cairo-1.16.0.tar.xz diff --git a/xorg/cairo/version b/xorg/cairo/version new file mode 100644 index 00000000..7a092de2 --- /dev/null +++ b/xorg/cairo/version @@ -0,0 +1 @@ +1.16.0 3 diff --git a/xorg/fontconfig/build b/xorg/fontconfig/build new file mode 100755 index 00000000..491646f4 --- /dev/null +++ b/xorg/fontconfig/build @@ -0,0 +1,10 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --with-xmldir=/etc/fonts + +make +make DESTDIR="$1" install diff --git a/xorg/fontconfig/checksums b/xorg/fontconfig/checksums new file mode 100644 index 00000000..f5c9e125 --- /dev/null +++ b/xorg/fontconfig/checksums @@ -0,0 +1 @@ +506e61283878c1726550bc94f2af26168f1e9f2106eac77eaaf0b2cdfad66e4e fontconfig-2.13.92.tar.xz diff --git a/xorg/fontconfig/depends b/xorg/fontconfig/depends new file mode 100644 index 00000000..3d20895d --- /dev/null +++ b/xorg/fontconfig/depends @@ -0,0 +1,3 @@ +expat +freetype-harfbuzz +gperf make diff --git a/xorg/fontconfig/post-install b/xorg/fontconfig/post-install new file mode 100755 index 00000000..50861de3 --- /dev/null +++ b/xorg/fontconfig/post-install @@ -0,0 +1,3 @@ +#!/bin/sh + +fc-cache -vf diff --git a/xorg/fontconfig/sources b/xorg/fontconfig/sources new file mode 100644 index 00000000..3f28846b --- /dev/null +++ b/xorg/fontconfig/sources @@ -0,0 +1 @@ +https://freedesktop.org/software/fontconfig/release/fontconfig-2.13.92.tar.xz diff --git a/xorg/fontconfig/version b/xorg/fontconfig/version new file mode 100644 index 00000000..dfe1ff01 --- /dev/null +++ b/xorg/fontconfig/version @@ -0,0 +1 @@ +2.13.92 1 diff --git a/xorg/freetype-harfbuzz/build b/xorg/freetype-harfbuzz/build new file mode 100755 index 00000000..d42d5ac0 --- /dev/null +++ b/xorg/freetype-harfbuzz/build @@ -0,0 +1,40 @@ +#!/bin/sh -e + +build_freetype() ( + cd freetype + + CFLAGS="$CFLAGS -DDEFAULT_TT_INTERPRETER_VERSION=TT_INTERPRETER_VERSION_40" \ + ./configure \ + --prefix=/usr \ + --enable-freetype-config \ + --with-harfbuzz="$2" + + make + make DESTDIR="$1" install +) + +build_harfbuzz() ( + cd harfbuzz + + ./configure \ + --prefix=/usr \ + --with-glib=yes \ + --with-icu=no + + make + make DESTDIR="$1" install +) + +build_freetype "$1" no + +# Point Harfbuzz to the Freetype files. +export FREETYPE_CFLAGS="-I$PWD/freetype/include" +export FREETYPE_LIBS="-L$1/usr/lib -lfreetype" + +build_harfbuzz "$1" + +# Point Freetype to the Harfbuzz files. +export HARFBUZZ_CFLAGS="-I$PWD/harfbuzz/src" +export HARFBUZZ_LIBS="-L$PWD/harfbuzz/src/.libs -lharfbuzz" + +build_freetype "$1" yes diff --git a/xorg/freetype-harfbuzz/checksums b/xorg/freetype-harfbuzz/checksums new file mode 100644 index 00000000..3a91c887 --- /dev/null +++ b/xorg/freetype-harfbuzz/checksums @@ -0,0 +1,2 @@ +16dbfa488a21fe827dc27eaf708f42f7aa3bb997d745d31a19781628c36ba26f freetype-2.10.1.tar.xz +9413b8d96132d699687ef914ebb8c50440efc87b3f775d25856d7ec347c03c12 harfbuzz-2.6.4.tar.xz diff --git a/xorg/freetype-harfbuzz/depends b/xorg/freetype-harfbuzz/depends new file mode 100644 index 00000000..a7f66b10 --- /dev/null +++ b/xorg/freetype-harfbuzz/depends @@ -0,0 +1,17 @@ +bzip2 +expat +glib +libX11 +libXau +libXdamage +libXext +libXfixes +libXrender +libXxf86vm +libdrm +libpng +libxcb +libxshmfence +mesa +pixman +zlib diff --git a/xorg/freetype-harfbuzz/sources b/xorg/freetype-harfbuzz/sources new file mode 100644 index 00000000..676c90a1 --- /dev/null +++ b/xorg/freetype-harfbuzz/sources @@ -0,0 +1,2 @@ +https://download-mirror.savannah.gnu.org/releases/freetype/freetype-2.10.1.tar.xz freetype +https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-2.6.4.tar.xz harfbuzz diff --git a/xorg/freetype-harfbuzz/version b/xorg/freetype-harfbuzz/version new file mode 100644 index 00000000..0f9afd68 --- /dev/null +++ b/xorg/freetype-harfbuzz/version @@ -0,0 +1 @@ +2.10.1+2.6.4 1 diff --git a/xorg/gdk-pixbuf/build b/xorg/gdk-pixbuf/build new file mode 100755 index 00000000..cedbfa0b --- /dev/null +++ b/xorg/gdk-pixbuf/build @@ -0,0 +1,19 @@ +#!/bin/sh -e + +export DESTDIR="$1" + +meson \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + -Dgir=false \ + -Djasper=false \ + -Dpng=true \ + -Ddocs=false \ + -Dman=false \ + -Dinstalled_tests=false \ + -Dbuiltin_loaders=all \ + . output + +ninja -C output +ninja -C output install diff --git a/xorg/gdk-pixbuf/checksums b/xorg/gdk-pixbuf/checksums new file mode 100644 index 00000000..cc4a0ecb --- /dev/null +++ b/xorg/gdk-pixbuf/checksums @@ -0,0 +1 @@ +1582595099537ca8ff3b99c6804350b4c058bb8ad67411bbaae024ee7cead4e6 gdk-pixbuf-2.40.0.tar.xz diff --git a/xorg/gdk-pixbuf/depends b/xorg/gdk-pixbuf/depends new file mode 100644 index 00000000..a6b78545 --- /dev/null +++ b/xorg/gdk-pixbuf/depends @@ -0,0 +1,5 @@ +glib +libX11 +libpng +meson make +shared-mime-info make diff --git a/xorg/gdk-pixbuf/post-install b/xorg/gdk-pixbuf/post-install new file mode 100755 index 00000000..b97f005f --- /dev/null +++ b/xorg/gdk-pixbuf/post-install @@ -0,0 +1,3 @@ +#!/bin/sh + +gdk-pixbuf-query-loaders --update-cache diff --git a/xorg/gdk-pixbuf/sources b/xorg/gdk-pixbuf/sources new file mode 100644 index 00000000..2990051a --- /dev/null +++ b/xorg/gdk-pixbuf/sources @@ -0,0 +1 @@ +https://download.gnome.org/sources/gdk-pixbuf/2.40/gdk-pixbuf-2.40.0.tar.xz diff --git a/xorg/gdk-pixbuf/version b/xorg/gdk-pixbuf/version new file mode 100644 index 00000000..4ce29de9 --- /dev/null +++ b/xorg/gdk-pixbuf/version @@ -0,0 +1 @@ +2.40.0 1 diff --git a/xorg/gtk+2/build b/xorg/gtk+2/build new file mode 100755 index 00000000..7bb2318b --- /dev/null +++ b/xorg/gtk+2/build @@ -0,0 +1,18 @@ +#!/bin/sh -e + +export CFLAGS="$CFLAGS -UGDK_PIXBUF_DISABLE_DEPRECATED" + +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --enable-debug=no \ + --disable-gtk-doc \ + --with-xinput=yes + +make +make DESTDIR="$1" install + +rm -f "$1/usr/bin/gtk-update-icon-cache" +rm -f "$1/usr/bin/gtk-demo" +rm -rf "$1/usr/share/gtk-2.0/demo" diff --git a/xorg/gtk+2/checksums b/xorg/gtk+2/checksums new file mode 100644 index 00000000..987f312c --- /dev/null +++ b/xorg/gtk+2/checksums @@ -0,0 +1 @@ +b6c8a93ddda5eabe3bfee1eb39636c9a03d2a56c7b62828b359bf197943c582e gtk+-2.24.32.tar.xz diff --git a/xorg/gtk+2/depends b/xorg/gtk+2/depends new file mode 100644 index 00000000..55387439 --- /dev/null +++ b/xorg/gtk+2/depends @@ -0,0 +1,10 @@ +atk +fribidi +gdk-pixbuf +libXcomposite +libXi +libXinerama +libepoxy +pango +python make +shared-mime-info diff --git a/xorg/gtk+2/sources b/xorg/gtk+2/sources new file mode 100644 index 00000000..9d4cf178 --- /dev/null +++ b/xorg/gtk+2/sources @@ -0,0 +1 @@ +https://download.gnome.org/sources/gtk+/2.24/gtk+-2.24.32.tar.xz diff --git a/xorg/gtk+2/version b/xorg/gtk+2/version new file mode 100644 index 00000000..475aee5b --- /dev/null +++ b/xorg/gtk+2/version @@ -0,0 +1 @@ +2.24.32 2 diff --git a/xorg/gtk+3/build b/xorg/gtk+3/build new file mode 100755 index 00000000..9db3b285 --- /dev/null +++ b/xorg/gtk+3/build @@ -0,0 +1,31 @@ +#!/bin/sh -e + +# Remove 'atk-bridge' dependency which removes the 'dbus' dependency. +sed -i 's/ATK_PACKAGES="atk atk-bridge-2.0"/ATK_PACKAGES="atk"/' \ + configure + +sed -i '/<atk-bridge.h>/d;/atk_bridge_adaptor_init/d' \ + gtk/a11y/gtkaccessibility.c + +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --enable-xkb \ + --enable-xinerama \ + --enable-xrandr \ + --enable-xfixes \ + --enable-xcomposite \ + --enable-xdamage \ + --enable-x11-backend \ + --enable-debug=no \ + --disable-schemas-compile \ + --disable-cups \ + --disable-papi \ + --disable-cloudprint \ + --enable-introspection=no \ + --enable-colord=no \ + --enable-gtk-doc-html=no + +make +make DESTDIR="$1" install diff --git a/xorg/gtk+3/checksums b/xorg/gtk+3/checksums new file mode 100644 index 00000000..3a5b0191 --- /dev/null +++ b/xorg/gtk+3/checksums @@ -0,0 +1 @@ +4c775c38cf1e3c534ef0ca52ca6c7a890fe169981af66141c713e054e68930a9 gtk+-3.24.13.tar.xz diff --git a/xorg/gtk+3/depends b/xorg/gtk+3/depends new file mode 100644 index 00000000..3a47a670 --- /dev/null +++ b/xorg/gtk+3/depends @@ -0,0 +1,15 @@ +atk +fribidi +gdk-pixbuf +libXcomposite +libXcursor +libXdamage +libXext +libXi +libXinerama +libXrandr +libepoxy +pango +perl make +python make +shared-mime-info diff --git a/xorg/gtk+3/post-install b/xorg/gtk+3/post-install new file mode 100755 index 00000000..551057e9 --- /dev/null +++ b/xorg/gtk+3/post-install @@ -0,0 +1,3 @@ +#!/bin/sh -e + +glib-compile-schemas /usr/share/glib-2.0/schemas/ diff --git a/xorg/gtk+3/sources b/xorg/gtk+3/sources new file mode 100644 index 00000000..3d86d1fa --- /dev/null +++ b/xorg/gtk+3/sources @@ -0,0 +1 @@ +https://download.gnome.org/sources/gtk+/3.24/gtk+-3.24.13.tar.xz diff --git a/xorg/gtk+3/version b/xorg/gtk+3/version new file mode 100644 index 00000000..fa9d3b2b --- /dev/null +++ b/xorg/gtk+3/version @@ -0,0 +1 @@ +3.24.13 1 diff --git a/xorg/hicolor-icon-theme/build b/xorg/hicolor-icon-theme/build new file mode 100755 index 00000000..c647b8ef --- /dev/null +++ b/xorg/hicolor-icon-theme/build @@ -0,0 +1,6 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make DESTDIR="$1" install diff --git a/xorg/hicolor-icon-theme/checksums b/xorg/hicolor-icon-theme/checksums new file mode 100644 index 00000000..79c2b66e --- /dev/null +++ b/xorg/hicolor-icon-theme/checksums @@ -0,0 +1 @@ +317484352271d18cbbcfac3868eab798d67fff1b8402e740baa6ff41d588a9d8 hicolor-icon-theme-0.17.tar.xz diff --git a/xorg/hicolor-icon-theme/sources b/xorg/hicolor-icon-theme/sources new file mode 100644 index 00000000..25bef1de --- /dev/null +++ b/xorg/hicolor-icon-theme/sources @@ -0,0 +1 @@ +https://icon-theme.freedesktop.org/releases/hicolor-icon-theme-0.17.tar.xz diff --git a/xorg/hicolor-icon-theme/version b/xorg/hicolor-icon-theme/version new file mode 100644 index 00000000..dc75c933 --- /dev/null +++ b/xorg/hicolor-icon-theme/version @@ -0,0 +1 @@ +0.17 1 diff --git a/xorg/libICE/build b/xorg/libICE/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/libICE/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/libICE/checksums b/xorg/libICE/checksums new file mode 100644 index 00000000..98a60cfb --- /dev/null +++ b/xorg/libICE/checksums @@ -0,0 +1 @@ +6f86dce12cf4bcaf5c37dddd8b1b64ed2ddf1ef7b218f22b9942595fb747c348 libICE-1.0.10.tar.bz2 diff --git a/xorg/libICE/depends b/xorg/libICE/depends new file mode 100644 index 00000000..ebbf4b36 --- /dev/null +++ b/xorg/libICE/depends @@ -0,0 +1,2 @@ +xorgproto make +xtrans make diff --git a/xorg/libICE/sources b/xorg/libICE/sources new file mode 100644 index 00000000..68be089e --- /dev/null +++ b/xorg/libICE/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libICE-1.0.10.tar.bz2 diff --git a/xorg/libICE/version b/xorg/libICE/version new file mode 100644 index 00000000..9933b0e0 --- /dev/null +++ b/xorg/libICE/version @@ -0,0 +1 @@ +1.0.10 2 diff --git a/xorg/libSM/build b/xorg/libSM/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/libSM/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/libSM/checksums b/xorg/libSM/checksums new file mode 100644 index 00000000..67486e6e --- /dev/null +++ b/xorg/libSM/checksums @@ -0,0 +1 @@ +2d264499dcb05f56438dee12a1b4b71d76736ce7ba7aa6efbf15ebb113769cbb libSM-1.2.3.tar.bz2 diff --git a/xorg/libSM/depends b/xorg/libSM/depends new file mode 100644 index 00000000..faa771bd --- /dev/null +++ b/xorg/libSM/depends @@ -0,0 +1,3 @@ +util-linux +libICE +pkgconf make diff --git a/xorg/libSM/sources b/xorg/libSM/sources new file mode 100644 index 00000000..af2ece39 --- /dev/null +++ b/xorg/libSM/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libSM-1.2.3.tar.bz2 diff --git a/xorg/libSM/version b/xorg/libSM/version new file mode 100644 index 00000000..e63ae1de --- /dev/null +++ b/xorg/libSM/version @@ -0,0 +1 @@ +1.2.3 2 diff --git a/xorg/libX11/build b/xorg/libX11/build new file mode 100755 index 00000000..a7d53475 --- /dev/null +++ b/xorg/libX11/build @@ -0,0 +1,13 @@ +#!/bin/sh -e + +CFLAGS_FOR_BUILD=-fPIC \ +./configure \ + --prefix=/usr \ + --enable-static + +make +make DESTDIR="$1" install + +# This will be removed once 'xorgproto' 2019.2 +# is released. +rm -f "$1/usr/include/X11/extensions/XKBgeom.h" diff --git a/xorg/libX11/checksums b/xorg/libX11/checksums new file mode 100644 index 00000000..3d2a2737 --- /dev/null +++ b/xorg/libX11/checksums @@ -0,0 +1 @@ +9cc7e8d000d6193fa5af580d50d689380b8287052270f5bb26a5fb6b58b2bed1 libX11-1.6.9.tar.bz2 diff --git a/xorg/libX11/depends b/xorg/libX11/depends new file mode 100644 index 00000000..dd5bf5e3 --- /dev/null +++ b/xorg/libX11/depends @@ -0,0 +1,4 @@ +libXau +libxcb +xorgproto +xtrans make diff --git a/xorg/libX11/sources b/xorg/libX11/sources new file mode 100644 index 00000000..4e04548b --- /dev/null +++ b/xorg/libX11/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libX11-1.6.9.tar.bz2 diff --git a/xorg/libX11/version b/xorg/libX11/version new file mode 100644 index 00000000..56a7097c --- /dev/null +++ b/xorg/libX11/version @@ -0,0 +1 @@ +1.6.9 1 diff --git a/xorg/libXScrnSaver/build b/xorg/libXScrnSaver/build new file mode 100755 index 00000000..105ed0c2 --- /dev/null +++ b/xorg/libXScrnSaver/build @@ -0,0 +1,8 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --enable-malloc0returnsnull + +make +make DESTDIR="$1" install diff --git a/xorg/libXScrnSaver/checksums b/xorg/libXScrnSaver/checksums new file mode 100644 index 00000000..c456e07b --- /dev/null +++ b/xorg/libXScrnSaver/checksums @@ -0,0 +1 @@ +f917075a1b7b5a38d67a8b0238eaab14acd2557679835b154cf2bca576e89bf8 libXScrnSaver-1.2.3.tar.bz2 diff --git a/xorg/libXScrnSaver/depends b/xorg/libXScrnSaver/depends new file mode 100644 index 00000000..320e15fd --- /dev/null +++ b/xorg/libXScrnSaver/depends @@ -0,0 +1,3 @@ +libX11 make +libXext make +xorgproto make diff --git a/xorg/libXScrnSaver/sources b/xorg/libXScrnSaver/sources new file mode 100644 index 00000000..1104156e --- /dev/null +++ b/xorg/libXScrnSaver/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libXScrnSaver-1.2.3.tar.bz2 diff --git a/xorg/libXScrnSaver/version b/xorg/libXScrnSaver/version new file mode 100644 index 00000000..883a7ecf --- /dev/null +++ b/xorg/libXScrnSaver/version @@ -0,0 +1 @@ +1.2.3 1 diff --git a/xorg/libXau/build b/xorg/libXau/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/libXau/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/libXau/checksums b/xorg/libXau/checksums new file mode 100644 index 00000000..cf7404f1 --- /dev/null +++ b/xorg/libXau/checksums @@ -0,0 +1 @@ +ccf8cbf0dbf676faa2ea0a6d64bcc3b6746064722b606c8c52917ed00dcb73ec libXau-1.0.9.tar.bz2 diff --git a/xorg/libXau/depends b/xorg/libXau/depends new file mode 100644 index 00000000..32e0e265 --- /dev/null +++ b/xorg/libXau/depends @@ -0,0 +1 @@ +xorgproto make diff --git a/xorg/libXau/sources b/xorg/libXau/sources new file mode 100644 index 00000000..8049390c --- /dev/null +++ b/xorg/libXau/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libXau-1.0.9.tar.bz2 diff --git a/xorg/libXau/version b/xorg/libXau/version new file mode 100644 index 00000000..77737630 --- /dev/null +++ b/xorg/libXau/version @@ -0,0 +1 @@ +1.0.9 1 diff --git a/xorg/libXcomposite/build b/xorg/libXcomposite/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/libXcomposite/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/libXcomposite/checksums b/xorg/libXcomposite/checksums new file mode 100644 index 00000000..ed55a544 --- /dev/null +++ b/xorg/libXcomposite/checksums @@ -0,0 +1 @@ +b3218a2c15bab8035d16810df5b8251ffc7132ff3aa70651a1fba0bfe9634e8f libXcomposite-0.4.5.tar.bz2 diff --git a/xorg/libXcomposite/depends b/xorg/libXcomposite/depends new file mode 100644 index 00000000..9cf42339 --- /dev/null +++ b/xorg/libXcomposite/depends @@ -0,0 +1,2 @@ +xorgproto make +libXfixes diff --git a/xorg/libXcomposite/sources b/xorg/libXcomposite/sources new file mode 100644 index 00000000..39b9b0ce --- /dev/null +++ b/xorg/libXcomposite/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libXcomposite-0.4.5.tar.bz2 diff --git a/xorg/libXcomposite/version b/xorg/libXcomposite/version new file mode 100644 index 00000000..d49665f6 --- /dev/null +++ b/xorg/libXcomposite/version @@ -0,0 +1 @@ +0.4.5 2 diff --git a/xorg/libXcursor/build b/xorg/libXcursor/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/libXcursor/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/libXcursor/checksums b/xorg/libXcursor/checksums new file mode 100644 index 00000000..0b7031a9 --- /dev/null +++ b/xorg/libXcursor/checksums @@ -0,0 +1 @@ +3ad3e9f8251094af6fe8cb4afcf63e28df504d46bfa5a5529db74a505d628782 libXcursor-1.2.0.tar.bz2 diff --git a/xorg/libXcursor/depends b/xorg/libXcursor/depends new file mode 100644 index 00000000..0f2bada9 --- /dev/null +++ b/xorg/libXcursor/depends @@ -0,0 +1,3 @@ +xorgproto make +libXrender +libXfixes diff --git a/xorg/libXcursor/sources b/xorg/libXcursor/sources new file mode 100644 index 00000000..4f3aa121 --- /dev/null +++ b/xorg/libXcursor/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libXcursor-1.2.0.tar.bz2 diff --git a/xorg/libXcursor/version b/xorg/libXcursor/version new file mode 100644 index 00000000..9d7d10ab --- /dev/null +++ b/xorg/libXcursor/version @@ -0,0 +1 @@ +1.2.0 2 diff --git a/xorg/libXdamage/build b/xorg/libXdamage/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/libXdamage/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/libXdamage/checksums b/xorg/libXdamage/checksums new file mode 100644 index 00000000..60657953 --- /dev/null +++ b/xorg/libXdamage/checksums @@ -0,0 +1 @@ +b734068643cac3b5f3d2c8279dd366b5bf28c7219d9e9d8717e1383995e0ea45 libXdamage-1.1.5.tar.bz2 diff --git a/xorg/libXdamage/depends b/xorg/libXdamage/depends new file mode 100644 index 00000000..e218970a --- /dev/null +++ b/xorg/libXdamage/depends @@ -0,0 +1,3 @@ +xorgproto make +libX11 +libXfixes diff --git a/xorg/libXdamage/sources b/xorg/libXdamage/sources new file mode 100644 index 00000000..85cff032 --- /dev/null +++ b/xorg/libXdamage/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libXdamage-1.1.5.tar.bz2 diff --git a/xorg/libXdamage/version b/xorg/libXdamage/version new file mode 100644 index 00000000..89d25d21 --- /dev/null +++ b/xorg/libXdamage/version @@ -0,0 +1 @@ +1.1.5 2 diff --git a/xorg/libXext/build b/xorg/libXext/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/libXext/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/libXext/checksums b/xorg/libXext/checksums new file mode 100644 index 00000000..e86d68c8 --- /dev/null +++ b/xorg/libXext/checksums @@ -0,0 +1 @@ +59ad6fcce98deaecc14d39a672cf218ca37aba617c9a0f691cac3bcd28edf82b libXext-1.3.4.tar.bz2 diff --git a/xorg/libXext/depends b/xorg/libXext/depends new file mode 100644 index 00000000..cdecd8b9 --- /dev/null +++ b/xorg/libXext/depends @@ -0,0 +1,2 @@ +xorgproto make +libX11 make diff --git a/xorg/libXext/sources b/xorg/libXext/sources new file mode 100644 index 00000000..5c64ae6d --- /dev/null +++ b/xorg/libXext/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libXext-1.3.4.tar.bz2 diff --git a/xorg/libXext/version b/xorg/libXext/version new file mode 100644 index 00000000..d289440a --- /dev/null +++ b/xorg/libXext/version @@ -0,0 +1 @@ +1.3.4 2 diff --git a/xorg/libXfixes/build b/xorg/libXfixes/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/libXfixes/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/libXfixes/checksums b/xorg/libXfixes/checksums new file mode 100644 index 00000000..e805a0a8 --- /dev/null +++ b/xorg/libXfixes/checksums @@ -0,0 +1 @@ +de1cd33aff226e08cefd0e6759341c2c8e8c9faf8ce9ac6ec38d43e287b22ad6 libXfixes-5.0.3.tar.bz2 diff --git a/xorg/libXfixes/sources b/xorg/libXfixes/sources new file mode 100644 index 00000000..c723eea3 --- /dev/null +++ b/xorg/libXfixes/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libXfixes-5.0.3.tar.bz2 diff --git a/xorg/libXfixes/version b/xorg/libXfixes/version new file mode 100644 index 00000000..374dd194 --- /dev/null +++ b/xorg/libXfixes/version @@ -0,0 +1 @@ +5.0.3 1 diff --git a/xorg/libXfont2/build b/xorg/libXfont2/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/libXfont2/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/libXfont2/checksums b/xorg/libXfont2/checksums new file mode 100644 index 00000000..b3ec8056 --- /dev/null +++ b/xorg/libXfont2/checksums @@ -0,0 +1 @@ +6d151b3368e5035efede4b6264c0fdc6662c1c99dbc2de425e3480cababc69e6 libXfont2-2.0.4.tar.bz2 diff --git a/xorg/libXfont2/depends b/xorg/libXfont2/depends new file mode 100644 index 00000000..d9d2b7d7 --- /dev/null +++ b/xorg/libXfont2/depends @@ -0,0 +1,4 @@ +freetype-harfbuzz +libfontenc +xorgproto make +xtrans make diff --git a/xorg/libXfont2/sources b/xorg/libXfont2/sources new file mode 100644 index 00000000..4d30f70b --- /dev/null +++ b/xorg/libXfont2/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libXfont2-2.0.4.tar.bz2 diff --git a/xorg/libXfont2/version b/xorg/libXfont2/version new file mode 100644 index 00000000..aaedf8d0 --- /dev/null +++ b/xorg/libXfont2/version @@ -0,0 +1 @@ +2.0.4 1 diff --git a/xorg/libXft/build b/xorg/libXft/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/libXft/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/libXft/checksums b/xorg/libXft/checksums new file mode 100644 index 00000000..de009098 --- /dev/null +++ b/xorg/libXft/checksums @@ -0,0 +1 @@ +225c68e616dd29dbb27809e45e9eadf18e4d74c50be43020ef20015274529216 libXft-2.3.3.tar.bz2 diff --git a/xorg/libXft/depends b/xorg/libXft/depends new file mode 100644 index 00000000..57d955e8 --- /dev/null +++ b/xorg/libXft/depends @@ -0,0 +1,4 @@ +fontconfig make +freetype-harfbuzz make +libXrender make +xorgproto make diff --git a/xorg/libXft/sources b/xorg/libXft/sources new file mode 100644 index 00000000..42ff08e4 --- /dev/null +++ b/xorg/libXft/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libXft-2.3.3.tar.bz2 diff --git a/xorg/libXft/version b/xorg/libXft/version new file mode 100644 index 00000000..c8114267 --- /dev/null +++ b/xorg/libXft/version @@ -0,0 +1 @@ +2.3.3 1 diff --git a/xorg/libXi/build b/xorg/libXi/build new file mode 100755 index 00000000..105ed0c2 --- /dev/null +++ b/xorg/libXi/build @@ -0,0 +1,8 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --enable-malloc0returnsnull + +make +make DESTDIR="$1" install diff --git a/xorg/libXi/checksums b/xorg/libXi/checksums new file mode 100644 index 00000000..93d1ff05 --- /dev/null +++ b/xorg/libXi/checksums @@ -0,0 +1 @@ +36a30d8f6383a72e7ce060298b4b181fd298bc3a135c8e201b7ca847f5f81061 libXi-1.7.10.tar.bz2 diff --git a/xorg/libXi/depends b/xorg/libXi/depends new file mode 100644 index 00000000..e648cf9a --- /dev/null +++ b/xorg/libXi/depends @@ -0,0 +1,3 @@ +libXext +libXfixes +xorgproto make diff --git a/xorg/libXi/sources b/xorg/libXi/sources new file mode 100644 index 00000000..1864b97c --- /dev/null +++ b/xorg/libXi/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libXi-1.7.10.tar.bz2 diff --git a/xorg/libXi/version b/xorg/libXi/version new file mode 100644 index 00000000..afbba12f --- /dev/null +++ b/xorg/libXi/version @@ -0,0 +1 @@ +1.7.10 3 diff --git a/xorg/libXinerama/build b/xorg/libXinerama/build new file mode 100755 index 00000000..105ed0c2 --- /dev/null +++ b/xorg/libXinerama/build @@ -0,0 +1,8 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --enable-malloc0returnsnull + +make +make DESTDIR="$1" install diff --git a/xorg/libXinerama/checksums b/xorg/libXinerama/checksums new file mode 100644 index 00000000..7a97240c --- /dev/null +++ b/xorg/libXinerama/checksums @@ -0,0 +1 @@ +0008dbd7ecf717e1e507eed1856ab0d9cf946d03201b85d5dcf61489bb02d720 libXinerama-1.1.4.tar.bz2 diff --git a/xorg/libXinerama/depends b/xorg/libXinerama/depends new file mode 100644 index 00000000..ae44963c --- /dev/null +++ b/xorg/libXinerama/depends @@ -0,0 +1,2 @@ +libXext +xorgproto diff --git a/xorg/libXinerama/sources b/xorg/libXinerama/sources new file mode 100644 index 00000000..53624239 --- /dev/null +++ b/xorg/libXinerama/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libXinerama-1.1.4.tar.bz2 diff --git a/xorg/libXinerama/version b/xorg/libXinerama/version new file mode 100644 index 00000000..b01ca96f --- /dev/null +++ b/xorg/libXinerama/version @@ -0,0 +1 @@ +1.1.4 1 diff --git a/xorg/libXmu/build b/xorg/libXmu/build new file mode 100755 index 00000000..6b0a232c --- /dev/null +++ b/xorg/libXmu/build @@ -0,0 +1,8 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --sysconfdir=/etc + +make +make DESTDIR="$1" install diff --git a/xorg/libXmu/checksums b/xorg/libXmu/checksums new file mode 100644 index 00000000..af34d904 --- /dev/null +++ b/xorg/libXmu/checksums @@ -0,0 +1 @@ +9c343225e7c3dc0904f2122b562278da5fed639b1b5e880d25111561bac5b731 libXmu-1.1.3.tar.bz2 diff --git a/xorg/libXmu/depends b/xorg/libXmu/depends new file mode 100644 index 00000000..7ca7df15 --- /dev/null +++ b/xorg/libXmu/depends @@ -0,0 +1,3 @@ +libXext +libXt +xorg-util-macros make diff --git a/xorg/libXmu/sources b/xorg/libXmu/sources new file mode 100644 index 00000000..ac95a86e --- /dev/null +++ b/xorg/libXmu/sources @@ -0,0 +1 @@ +https://x.org/releases/individual/lib/libXmu-1.1.3.tar.bz2 diff --git a/xorg/libXmu/version b/xorg/libXmu/version new file mode 100644 index 00000000..035474a2 --- /dev/null +++ b/xorg/libXmu/version @@ -0,0 +1 @@ +1.1.3 1 diff --git a/xorg/libXrandr/build b/xorg/libXrandr/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/libXrandr/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/libXrandr/checksums b/xorg/libXrandr/checksums new file mode 100644 index 00000000..8876a4c3 --- /dev/null +++ b/xorg/libXrandr/checksums @@ -0,0 +1 @@ +8aea0ebe403d62330bb741ed595b53741acf45033d3bda1792f1d4cc3daee023 libXrandr-1.5.2.tar.bz2 diff --git a/xorg/libXrandr/depends b/xorg/libXrandr/depends new file mode 100644 index 00000000..d6cc170c --- /dev/null +++ b/xorg/libXrandr/depends @@ -0,0 +1,3 @@ +xorgproto make +libXext make +libXrender make diff --git a/xorg/libXrandr/sources b/xorg/libXrandr/sources new file mode 100644 index 00000000..498263c5 --- /dev/null +++ b/xorg/libXrandr/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libXrandr-1.5.2.tar.bz2 diff --git a/xorg/libXrandr/version b/xorg/libXrandr/version new file mode 100644 index 00000000..5b702ae2 --- /dev/null +++ b/xorg/libXrandr/version @@ -0,0 +1 @@ +1.5.2 1 diff --git a/xorg/libXrender/build b/xorg/libXrender/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/libXrender/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/libXrender/checksums b/xorg/libXrender/checksums new file mode 100644 index 00000000..2c212184 --- /dev/null +++ b/xorg/libXrender/checksums @@ -0,0 +1 @@ +c06d5979f86e64cabbde57c223938db0b939dff49fdb5a793a1d3d0396650949 libXrender-0.9.10.tar.bz2 diff --git a/xorg/libXrender/depends b/xorg/libXrender/depends new file mode 100644 index 00000000..5c4191a2 --- /dev/null +++ b/xorg/libXrender/depends @@ -0,0 +1,2 @@ +xorgproto make +libXext make diff --git a/xorg/libXrender/sources b/xorg/libXrender/sources new file mode 100644 index 00000000..cbc8d07a --- /dev/null +++ b/xorg/libXrender/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libXrender-0.9.10.tar.bz2 diff --git a/xorg/libXrender/version b/xorg/libXrender/version new file mode 100644 index 00000000..6377cbbd --- /dev/null +++ b/xorg/libXrender/version @@ -0,0 +1 @@ +0.9.10 2 diff --git a/xorg/libXt/build b/xorg/libXt/build new file mode 100755 index 00000000..105ed0c2 --- /dev/null +++ b/xorg/libXt/build @@ -0,0 +1,8 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --enable-malloc0returnsnull + +make +make DESTDIR="$1" install diff --git a/xorg/libXt/checksums b/xorg/libXt/checksums new file mode 100644 index 00000000..b5b37c6b --- /dev/null +++ b/xorg/libXt/checksums @@ -0,0 +1 @@ +b31df531dabed9f4611fc8980bc51d7782967e2aff44c4105251a1acb5a77831 libXt-1.2.0.tar.bz2 diff --git a/xorg/libXt/depends b/xorg/libXt/depends new file mode 100644 index 00000000..f33f2ce9 --- /dev/null +++ b/xorg/libXt/depends @@ -0,0 +1,3 @@ +libSM +libX11 +xorgproto make diff --git a/xorg/libXt/sources b/xorg/libXt/sources new file mode 100644 index 00000000..3be15b6b --- /dev/null +++ b/xorg/libXt/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libXt-1.2.0.tar.bz2 diff --git a/xorg/libXt/version b/xorg/libXt/version new file mode 100644 index 00000000..9d7d10ab --- /dev/null +++ b/xorg/libXt/version @@ -0,0 +1 @@ +1.2.0 2 diff --git a/xorg/libXxf86vm/build b/xorg/libXxf86vm/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/libXxf86vm/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/libXxf86vm/checksums b/xorg/libXxf86vm/checksums new file mode 100644 index 00000000..bacddce7 --- /dev/null +++ b/xorg/libXxf86vm/checksums @@ -0,0 +1 @@ +afee27f93c5f31c0ad582852c0fb36d50e4de7cd585fcf655e278a633d85cd57 libXxf86vm-1.1.4.tar.bz2 diff --git a/xorg/libXxf86vm/depends b/xorg/libXxf86vm/depends new file mode 100644 index 00000000..5c4191a2 --- /dev/null +++ b/xorg/libXxf86vm/depends @@ -0,0 +1,2 @@ +xorgproto make +libXext make diff --git a/xorg/libXxf86vm/sources b/xorg/libXxf86vm/sources new file mode 100644 index 00000000..cd080df2 --- /dev/null +++ b/xorg/libXxf86vm/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libXxf86vm-1.1.4.tar.bz2 diff --git a/xorg/libXxf86vm/version b/xorg/libXxf86vm/version new file mode 100644 index 00000000..b01ca96f --- /dev/null +++ b/xorg/libXxf86vm/version @@ -0,0 +1 @@ +1.1.4 1 diff --git a/xorg/libdrm/build b/xorg/libdrm/build new file mode 100755 index 00000000..625ec3a8 --- /dev/null +++ b/xorg/libdrm/build @@ -0,0 +1,8 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --disable-valgrind + +make +make DESTDIR="$1" install diff --git a/xorg/libdrm/checksums b/xorg/libdrm/checksums new file mode 100644 index 00000000..0c393df3 --- /dev/null +++ b/xorg/libdrm/checksums @@ -0,0 +1 @@ +c77cc828186c9ceec3e56ae202b43ee99eb932b4a87255038a80e8a1060d0a5d libdrm-2.4.100.tar.bz2 diff --git a/xorg/libdrm/depends b/xorg/libdrm/depends new file mode 100644 index 00000000..90925c29 --- /dev/null +++ b/xorg/libdrm/depends @@ -0,0 +1 @@ +libpciaccess diff --git a/xorg/libdrm/sources b/xorg/libdrm/sources new file mode 100644 index 00000000..c6adb517 --- /dev/null +++ b/xorg/libdrm/sources @@ -0,0 +1 @@ +https://dri.freedesktop.org/libdrm/libdrm-2.4.100.tar.bz2 diff --git a/xorg/libdrm/version b/xorg/libdrm/version new file mode 100644 index 00000000..a7a3418f --- /dev/null +++ b/xorg/libdrm/version @@ -0,0 +1 @@ +2.4.100 1 diff --git a/xorg/libepoxy/build b/xorg/libepoxy/build new file mode 100755 index 00000000..54475523 --- /dev/null +++ b/xorg/libepoxy/build @@ -0,0 +1,13 @@ +#!/bin/sh -e + +export DESTDIR="$1" + +meson \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + -Dhas-dlvsym=false \ + . output + +ninja -C output +ninja -C output install diff --git a/xorg/libepoxy/checksums b/xorg/libepoxy/checksums new file mode 100644 index 00000000..233b07ad --- /dev/null +++ b/xorg/libepoxy/checksums @@ -0,0 +1 @@ +c926fcc606901f3e03e371027056fd478da43e01ce2da7ffc48b5a0de0ca107c 1.5.4.tar.gz diff --git a/xorg/libepoxy/depends b/xorg/libepoxy/depends new file mode 100644 index 00000000..e68256be --- /dev/null +++ b/xorg/libepoxy/depends @@ -0,0 +1,2 @@ +mesa make +meson make diff --git a/xorg/libepoxy/sources b/xorg/libepoxy/sources new file mode 100644 index 00000000..91669f1e --- /dev/null +++ b/xorg/libepoxy/sources @@ -0,0 +1 @@ +https://github.com/anholt/libepoxy/archive/1.5.4.tar.gz diff --git a/xorg/libepoxy/version b/xorg/libepoxy/version new file mode 100644 index 00000000..de75e7c1 --- /dev/null +++ b/xorg/libepoxy/version @@ -0,0 +1 @@ +1.5.4 1 diff --git a/xorg/libevdev/build b/xorg/libevdev/build new file mode 100755 index 00000000..0cccff6c --- /dev/null +++ b/xorg/libevdev/build @@ -0,0 +1,8 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --disable-gcov + +make +make DESTDIR="$1" install diff --git a/xorg/libevdev/checksums b/xorg/libevdev/checksums new file mode 100644 index 00000000..98f30a63 --- /dev/null +++ b/xorg/libevdev/checksums @@ -0,0 +1 @@ +20d3cae4efd277f485abdf8f2a7c46588e539998b5a08c2c4d368218379d4211 libevdev-1.8.0.tar.xz diff --git a/xorg/libevdev/depends b/xorg/libevdev/depends new file mode 100644 index 00000000..0efd8dbe --- /dev/null +++ b/xorg/libevdev/depends @@ -0,0 +1,2 @@ +linux-headers make +python make diff --git a/xorg/libevdev/sources b/xorg/libevdev/sources new file mode 100644 index 00000000..5039d72a --- /dev/null +++ b/xorg/libevdev/sources @@ -0,0 +1 @@ +https://www.freedesktop.org/software/libevdev/libevdev-1.8.0.tar.xz diff --git a/xorg/libevdev/version b/xorg/libevdev/version new file mode 100644 index 00000000..ab764544 --- /dev/null +++ b/xorg/libevdev/version @@ -0,0 +1 @@ +1.8.0 1 diff --git a/xorg/libfontenc/build b/xorg/libfontenc/build new file mode 100755 index 00000000..b1980f79 --- /dev/null +++ b/xorg/libfontenc/build @@ -0,0 +1,8 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --with-fontrootdir=/usr/share/fonts/X11 + +make +make DESTDIR="$1" install diff --git a/xorg/libfontenc/checksums b/xorg/libfontenc/checksums new file mode 100644 index 00000000..23248ab2 --- /dev/null +++ b/xorg/libfontenc/checksums @@ -0,0 +1 @@ +2cfcce810ddd48f2e5dc658d28c1808e86dcf303eaff16728b9aa3dbc0092079 libfontenc-1.1.4.tar.bz2 diff --git a/xorg/libfontenc/depends b/xorg/libfontenc/depends new file mode 100644 index 00000000..101537ac --- /dev/null +++ b/xorg/libfontenc/depends @@ -0,0 +1,2 @@ +xorgproto make +zlib diff --git a/xorg/libfontenc/sources b/xorg/libfontenc/sources new file mode 100644 index 00000000..149bdd87 --- /dev/null +++ b/xorg/libfontenc/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libfontenc-1.1.4.tar.bz2 diff --git a/xorg/libfontenc/version b/xorg/libfontenc/version new file mode 100644 index 00000000..6cab2e0c --- /dev/null +++ b/xorg/libfontenc/version @@ -0,0 +1 @@ +1.1.4 2 diff --git a/xorg/libinput/build b/xorg/libinput/build new file mode 100755 index 00000000..279e27fc --- /dev/null +++ b/xorg/libinput/build @@ -0,0 +1,16 @@ +#!/bin/sh -e + +export DESTDIR="$1" + +meson \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + -Ddebug-gui=false \ + -Ddocumentation=false \ + -Dtests=false \ + -Dlibwacom=false \ + . output + +ninja -C output +ninja -C output install diff --git a/xorg/libinput/checksums b/xorg/libinput/checksums new file mode 100644 index 00000000..14279938 --- /dev/null +++ b/xorg/libinput/checksums @@ -0,0 +1 @@ +0feb3a0589709cc1032893bfaf4c49150d5360bd9782bec888f9e4dd9044c5b7 libinput-1.14.3.tar.xz diff --git a/xorg/libinput/depends b/xorg/libinput/depends new file mode 100644 index 00000000..8e41a3c2 --- /dev/null +++ b/xorg/libinput/depends @@ -0,0 +1,4 @@ +eudev +libevdev +meson make +mtdev diff --git a/xorg/libinput/post-install b/xorg/libinput/post-install new file mode 100755 index 00000000..7f3e7efc --- /dev/null +++ b/xorg/libinput/post-install @@ -0,0 +1,17 @@ +#!/bin/sh + +cat <<EOF + +NOTE: You must be a part of the [1minput[m group + for libinput to work. + +NOTE: This groups based permissions model may not + be suitable if KISS will be used as a multi + user system. Further configuration can be + done at your own discretion. + +-> addgroup USER input + +NOTE: You also need [1mxf86-input-libinput[m. + +EOF diff --git a/xorg/libinput/sources b/xorg/libinput/sources new file mode 100644 index 00000000..d7538b39 --- /dev/null +++ b/xorg/libinput/sources @@ -0,0 +1 @@ +https://www.freedesktop.org/software/libinput/libinput-1.14.3.tar.xz diff --git a/xorg/libinput/version b/xorg/libinput/version new file mode 100644 index 00000000..6c4cca37 --- /dev/null +++ b/xorg/libinput/version @@ -0,0 +1 @@ +1.14.3 1 diff --git a/xorg/libpciaccess/build b/xorg/libpciaccess/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/libpciaccess/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/libpciaccess/checksums b/xorg/libpciaccess/checksums new file mode 100644 index 00000000..3e2c8c14 --- /dev/null +++ b/xorg/libpciaccess/checksums @@ -0,0 +1 @@ +214c9d0d884fdd7375ec8da8dcb91a8d3169f263294c9a90c575bf1938b9f489 libpciaccess-0.16.tar.bz2 diff --git a/xorg/libpciaccess/sources b/xorg/libpciaccess/sources new file mode 100644 index 00000000..8b91d752 --- /dev/null +++ b/xorg/libpciaccess/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libpciaccess-0.16.tar.bz2 diff --git a/xorg/libpciaccess/version b/xorg/libpciaccess/version new file mode 100644 index 00000000..06da242c --- /dev/null +++ b/xorg/libpciaccess/version @@ -0,0 +1 @@ +0.16 1 diff --git a/xorg/libxcb/build b/xorg/libxcb/build new file mode 100755 index 00000000..285ad906 --- /dev/null +++ b/xorg/libxcb/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +sed -i 's/pthread-stubs //' configure + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/libxcb/checksums b/xorg/libxcb/checksums new file mode 100644 index 00000000..66eac30c --- /dev/null +++ b/xorg/libxcb/checksums @@ -0,0 +1 @@ +a89fb7af7a11f43d2ce84a844a4b38df688c092bf4b67683aef179cdf2a647c4 libxcb-1.13.1.tar.bz2 diff --git a/xorg/libxcb/depends b/xorg/libxcb/depends new file mode 100644 index 00000000..142b0470 --- /dev/null +++ b/xorg/libxcb/depends @@ -0,0 +1,3 @@ +libXau +xcb-proto +xorg-util-macros diff --git a/xorg/libxcb/sources b/xorg/libxcb/sources new file mode 100644 index 00000000..18298461 --- /dev/null +++ b/xorg/libxcb/sources @@ -0,0 +1 @@ +https://xcb.freedesktop.org/dist/libxcb-1.13.1.tar.bz2 diff --git a/xorg/libxcb/version b/xorg/libxcb/version new file mode 100644 index 00000000..eb6ce0e2 --- /dev/null +++ b/xorg/libxcb/version @@ -0,0 +1 @@ +1.13.1 5 diff --git a/xorg/libxkbfile/build b/xorg/libxkbfile/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/libxkbfile/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/libxkbfile/checksums b/xorg/libxkbfile/checksums new file mode 100644 index 00000000..7320a843 --- /dev/null +++ b/xorg/libxkbfile/checksums @@ -0,0 +1 @@ +758dbdaa20add2db4902df0b1b7c936564b7376c02a0acd1f2a331bd334b38c7 libxkbfile-1.1.0.tar.bz2 diff --git a/xorg/libxkbfile/depends b/xorg/libxkbfile/depends new file mode 100644 index 00000000..ac4a28ab --- /dev/null +++ b/xorg/libxkbfile/depends @@ -0,0 +1,2 @@ +libX11 make +xorgproto make diff --git a/xorg/libxkbfile/sources b/xorg/libxkbfile/sources new file mode 100644 index 00000000..858e762f --- /dev/null +++ b/xorg/libxkbfile/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libxkbfile-1.1.0.tar.bz2 diff --git a/xorg/libxkbfile/version b/xorg/libxkbfile/version new file mode 100644 index 00000000..7281bb52 --- /dev/null +++ b/xorg/libxkbfile/version @@ -0,0 +1 @@ +1.1.0 1 diff --git a/xorg/libxshmfence/build b/xorg/libxshmfence/build new file mode 100755 index 00000000..4a70bbd8 --- /dev/null +++ b/xorg/libxshmfence/build @@ -0,0 +1,8 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --with-shared-memory-dir=/dev/shm + +make +make DESTDIR="$1" install diff --git a/xorg/libxshmfence/checksums b/xorg/libxshmfence/checksums new file mode 100644 index 00000000..64031f30 --- /dev/null +++ b/xorg/libxshmfence/checksums @@ -0,0 +1 @@ +b884300d26a14961a076fbebc762a39831cb75f92bed5ccf9836345b459220c7 libxshmfence-1.3.tar.bz2 diff --git a/xorg/libxshmfence/depends b/xorg/libxshmfence/depends new file mode 100644 index 00000000..32e0e265 --- /dev/null +++ b/xorg/libxshmfence/depends @@ -0,0 +1 @@ +xorgproto make diff --git a/xorg/libxshmfence/sources b/xorg/libxshmfence/sources new file mode 100644 index 00000000..37d40769 --- /dev/null +++ b/xorg/libxshmfence/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/libxshmfence-1.3.tar.bz2 diff --git a/xorg/libxshmfence/version b/xorg/libxshmfence/version new file mode 100644 index 00000000..a37a04c3 --- /dev/null +++ b/xorg/libxshmfence/version @@ -0,0 +1 @@ +1.3 1 diff --git a/xorg/mesa/build b/xorg/mesa/build new file mode 100755 index 00000000..8441ca95 --- /dev/null +++ b/xorg/mesa/build @@ -0,0 +1,16 @@ +#!/bin/sh -e + +export DESTDIR="$1" +export CFLAGS="-DGLX_X86_READONLY_TEXT $CFLAGS" + +meson \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var \ + --buildtype=release \ + -Dplatforms=x11,drm \ + . output + +ninja -C output +ninja -C output install diff --git a/xorg/mesa/checksums b/xorg/mesa/checksums new file mode 100644 index 00000000..c63b790f --- /dev/null +++ b/xorg/mesa/checksums @@ -0,0 +1 @@ +9d7b24fa60c82db34788196450042a55ce6cb2d70c7a8d5c31401619b6907797 mesa-19.2.6.tar.xz diff --git a/xorg/mesa/depends b/xorg/mesa/depends new file mode 100644 index 00000000..1a65438f --- /dev/null +++ b/xorg/mesa/depends @@ -0,0 +1,19 @@ +bison make +expat +flex make +libX11 +libXdamage +libXext +libXrandr +libXrender +libXxf86vm +libdrm +libelf +libxcb +libxshmfence +llvm +meson make +python make +python-mako make +xorgproto +zlib diff --git a/xorg/mesa/sources b/xorg/mesa/sources new file mode 100644 index 00000000..c7189578 --- /dev/null +++ b/xorg/mesa/sources @@ -0,0 +1 @@ +https://mesa.freedesktop.org/archive/mesa-19.2.6.tar.xz diff --git a/xorg/mesa/version b/xorg/mesa/version new file mode 100644 index 00000000..21a072a8 --- /dev/null +++ b/xorg/mesa/version @@ -0,0 +1 @@ +19.2.6 1 diff --git a/xorg/mtdev/build b/xorg/mtdev/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/mtdev/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/mtdev/checksums b/xorg/mtdev/checksums new file mode 100644 index 00000000..b0ef807c --- /dev/null +++ b/xorg/mtdev/checksums @@ -0,0 +1 @@ +6677d5708a7948840de734d8b4675d5980d4561171c5a8e89e54adf7a13eba7f mtdev-1.1.5.tar.bz2 diff --git a/xorg/mtdev/sources b/xorg/mtdev/sources new file mode 100644 index 00000000..f6b66743 --- /dev/null +++ b/xorg/mtdev/sources @@ -0,0 +1 @@ +https://bitmath.org/code/mtdev/mtdev-1.1.5.tar.bz2 diff --git a/xorg/mtdev/version b/xorg/mtdev/version new file mode 100644 index 00000000..3d29560a --- /dev/null +++ b/xorg/mtdev/version @@ -0,0 +1 @@ +1.1.5 1 diff --git a/xorg/pango/build b/xorg/pango/build new file mode 100755 index 00000000..f9f9fd37 --- /dev/null +++ b/xorg/pango/build @@ -0,0 +1,17 @@ +#!/bin/sh -e + +export DESTDIR="$1" + +meson \ + --prefix=/usr \ + -Dgir=false \ + -Dgtk_doc=false \ + -Dintrospection=false \ + . build + +ninja -C build +ninja -C build install + +# Remove unneeded tests +rm -rf "$1/usr/share/installed-tests" +rm -rf "$1/usr/libexec/installed-tests" diff --git a/xorg/pango/checksums b/xorg/pango/checksums new file mode 100644 index 00000000..4669e91f --- /dev/null +++ b/xorg/pango/checksums @@ -0,0 +1 @@ +66a5b6cc13db73efed67b8e933584509f8ddb7b10a8a40c3850ca4a985ea1b1f pango-1.44.7.tar.xz diff --git a/xorg/pango/depends b/xorg/pango/depends new file mode 100644 index 00000000..400e99c4 --- /dev/null +++ b/xorg/pango/depends @@ -0,0 +1,8 @@ +cairo +fontconfig +freetype-harfbuzz +fribidi +glib +libXft +libXrender +meson make diff --git a/xorg/pango/sources b/xorg/pango/sources new file mode 100644 index 00000000..a212db0c --- /dev/null +++ b/xorg/pango/sources @@ -0,0 +1 @@ +https://download.gnome.org/sources/pango/1.44/pango-1.44.7.tar.xz diff --git a/xorg/pango/version b/xorg/pango/version new file mode 100644 index 00000000..4d85154a --- /dev/null +++ b/xorg/pango/version @@ -0,0 +1 @@ +1.44.7 1 diff --git a/xorg/pixman/build b/xorg/pixman/build new file mode 100755 index 00000000..cb0b1bff --- /dev/null +++ b/xorg/pixman/build @@ -0,0 +1,8 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --disable-gtk + +make +make DESTDIR="$1" install diff --git a/xorg/pixman/checksums b/xorg/pixman/checksums new file mode 100644 index 00000000..41aff956 --- /dev/null +++ b/xorg/pixman/checksums @@ -0,0 +1 @@ +84abb7fa2541af24d9c3b34bf75d6ac60cc94ac4410061bbb295b66a29221550 pixman-0.38.4.tar.bz2 diff --git a/xorg/pixman/sources b/xorg/pixman/sources new file mode 100644 index 00000000..a07081f1 --- /dev/null +++ b/xorg/pixman/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/pixman-0.38.4.tar.bz2 diff --git a/xorg/pixman/version b/xorg/pixman/version new file mode 100644 index 00000000..fc098d80 --- /dev/null +++ b/xorg/pixman/version @@ -0,0 +1 @@ +0.38.4 1 diff --git a/xorg/python-mako/build b/xorg/python-mako/build new file mode 100755 index 00000000..6efa479b --- /dev/null +++ b/xorg/python-mako/build @@ -0,0 +1,6 @@ +#!/bin/sh -e + +python3 setup.py build +python3 setup.py install \ + --prefix=/usr \ + --root="$1" diff --git a/xorg/python-mako/checksums b/xorg/python-mako/checksums new file mode 100644 index 00000000..27a1cd78 --- /dev/null +++ b/xorg/python-mako/checksums @@ -0,0 +1 @@ +a36919599a9b7dc5d86a7a8988f23a9a3a3d083070023bab23d64f7f1d1e0a4b Mako-1.1.0.tar.gz diff --git a/xorg/python-mako/depends b/xorg/python-mako/depends new file mode 100644 index 00000000..fdc793e7 --- /dev/null +++ b/xorg/python-mako/depends @@ -0,0 +1 @@ +python diff --git a/xorg/python-mako/sources b/xorg/python-mako/sources new file mode 100644 index 00000000..b212ce3c --- /dev/null +++ b/xorg/python-mako/sources @@ -0,0 +1 @@ +https://files.pythonhosted.org/packages/source/M/Mako/Mako-1.1.0.tar.gz diff --git a/xorg/python-mako/version b/xorg/python-mako/version new file mode 100644 index 00000000..cc57f911 --- /dev/null +++ b/xorg/python-mako/version @@ -0,0 +1 @@ +1.1.0 2 diff --git a/xorg/setxkbmap/build b/xorg/setxkbmap/build new file mode 100755 index 00000000..373bceed --- /dev/null +++ b/xorg/setxkbmap/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --mandir=/usr/share/man \ + --localstatedir=/var + +make +make DESTDIR="$1" install diff --git a/xorg/setxkbmap/checksums b/xorg/setxkbmap/checksums new file mode 100644 index 00000000..a9832e32 --- /dev/null +++ b/xorg/setxkbmap/checksums @@ -0,0 +1 @@ +7e934afc55f161406f7dd99b5be8837e5d1478d8263776697b159d48461a1d3c setxkbmap-1.3.2.tar.gz diff --git a/xorg/setxkbmap/depends b/xorg/setxkbmap/depends new file mode 100644 index 00000000..0c497a66 --- /dev/null +++ b/xorg/setxkbmap/depends @@ -0,0 +1,2 @@ +libX11 +libxkbfile diff --git a/xorg/setxkbmap/sources b/xorg/setxkbmap/sources new file mode 100644 index 00000000..2f7c900a --- /dev/null +++ b/xorg/setxkbmap/sources @@ -0,0 +1 @@ +https://www.x.org/archive//individual/app/setxkbmap-1.3.2.tar.gz diff --git a/xorg/setxkbmap/version b/xorg/setxkbmap/version new file mode 100644 index 00000000..a8cebfe5 --- /dev/null +++ b/xorg/setxkbmap/version @@ -0,0 +1 @@ +1.3.2 1 diff --git a/xorg/sowm/build b/xorg/sowm/build new file mode 100755 index 00000000..7de21eed --- /dev/null +++ b/xorg/sowm/build @@ -0,0 +1,4 @@ +#!/bin/sh -e + +make +make DESTDIR="$1" install diff --git a/xorg/sowm/checksums b/xorg/sowm/checksums new file mode 100644 index 00000000..ad41f283 --- /dev/null +++ b/xorg/sowm/checksums @@ -0,0 +1 @@ +60f3deaf2663fd35da3ac305143350f4b28dd41cea5f4ffc0fd7cf7f1e268098 1.0.tar.gz diff --git a/xorg/sowm/depends b/xorg/sowm/depends new file mode 100644 index 00000000..1903bba6 --- /dev/null +++ b/xorg/sowm/depends @@ -0,0 +1 @@ +libX11 diff --git a/xorg/sowm/sources b/xorg/sowm/sources new file mode 100644 index 00000000..60a89833 --- /dev/null +++ b/xorg/sowm/sources @@ -0,0 +1 @@ +https://github.com/dylanaraps/sowm/archive/1.0.tar.gz diff --git a/xorg/sowm/version b/xorg/sowm/version new file mode 100644 index 00000000..f35ed484 --- /dev/null +++ b/xorg/sowm/version @@ -0,0 +1 @@ +1.0 1 diff --git a/xorg/st/build b/xorg/st/build new file mode 100755 index 00000000..53074cc3 --- /dev/null +++ b/xorg/st/build @@ -0,0 +1,6 @@ +#!/bin/sh -e + +sed -i 's|Liberation Mono|Monospace|g' config.def.h + +make +make PREFIX=/usr DESTDIR="$1" install diff --git a/xorg/st/checksums b/xorg/st/checksums new file mode 100644 index 00000000..5643a2f4 --- /dev/null +++ b/xorg/st/checksums @@ -0,0 +1 @@ +aeb74e10aa11ed364e1bcc635a81a523119093e63befd2f231f8b0705b15bf35 st-0.8.2.tar.gz diff --git a/xorg/st/depends b/xorg/st/depends new file mode 100644 index 00000000..5e3e4972 --- /dev/null +++ b/xorg/st/depends @@ -0,0 +1,4 @@ +fontconfig +libX11 +libXft +ncurses make diff --git a/xorg/st/sources b/xorg/st/sources new file mode 100644 index 00000000..7f853f09 --- /dev/null +++ b/xorg/st/sources @@ -0,0 +1 @@ +https://dl.suckless.org/st/st-0.8.2.tar.gz diff --git a/xorg/st/version b/xorg/st/version new file mode 100644 index 00000000..e1331499 --- /dev/null +++ b/xorg/st/version @@ -0,0 +1 @@ +0.8.2 2 diff --git a/xorg/xbitmaps/build b/xorg/xbitmaps/build new file mode 100755 index 00000000..80ce93e8 --- /dev/null +++ b/xorg/xbitmaps/build @@ -0,0 +1,10 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var + +make +make DESTDIR="$1" install diff --git a/xorg/xbitmaps/checksums b/xorg/xbitmaps/checksums new file mode 100644 index 00000000..69278b0e --- /dev/null +++ b/xorg/xbitmaps/checksums @@ -0,0 +1 @@ +b9f0c71563125937776c8f1f25174ae9685314cbd130fb4c2efce811981e07ee xbitmaps-1.1.2.tar.bz2 diff --git a/xorg/xbitmaps/depends b/xorg/xbitmaps/depends new file mode 100644 index 00000000..8c98a973 --- /dev/null +++ b/xorg/xbitmaps/depends @@ -0,0 +1 @@ +xorg-util-macros make diff --git a/xorg/xbitmaps/sources b/xorg/xbitmaps/sources new file mode 100644 index 00000000..6b03aaeb --- /dev/null +++ b/xorg/xbitmaps/sources @@ -0,0 +1 @@ +https://www.x.org/pub/individual/data/xbitmaps-1.1.2.tar.bz2 diff --git a/xorg/xbitmaps/version b/xorg/xbitmaps/version new file mode 100644 index 00000000..909c7076 --- /dev/null +++ b/xorg/xbitmaps/version @@ -0,0 +1 @@ +1.1.2 1 diff --git a/xorg/xcb-proto/build b/xorg/xcb-proto/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/xcb-proto/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/xcb-proto/checksums b/xorg/xcb-proto/checksums new file mode 100644 index 00000000..a500a6cb --- /dev/null +++ b/xorg/xcb-proto/checksums @@ -0,0 +1 @@ +7b98721e669be80284e9bbfeab02d2d0d54cd11172b72271e47a2fe875e2bde1 xcb-proto-1.13.tar.bz2 diff --git a/xorg/xcb-proto/depends b/xorg/xcb-proto/depends new file mode 100644 index 00000000..ecc77727 --- /dev/null +++ b/xorg/xcb-proto/depends @@ -0,0 +1 @@ +python make diff --git a/xorg/xcb-proto/sources b/xorg/xcb-proto/sources new file mode 100644 index 00000000..716865c3 --- /dev/null +++ b/xorg/xcb-proto/sources @@ -0,0 +1 @@ +https://xcb.freedesktop.org/dist/xcb-proto-1.13.tar.bz2 diff --git a/xorg/xcb-proto/version b/xorg/xcb-proto/version new file mode 100644 index 00000000..c63803d1 --- /dev/null +++ b/xorg/xcb-proto/version @@ -0,0 +1 @@ +1.13 1 diff --git a/xorg/xcb-util-cursor/build b/xorg/xcb-util-cursor/build new file mode 100755 index 00000000..7ca84fcf --- /dev/null +++ b/xorg/xcb-util-cursor/build @@ -0,0 +1,8 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --disable-static + +make +make DESTDIR="$1" install diff --git a/xorg/xcb-util-cursor/checksums b/xorg/xcb-util-cursor/checksums new file mode 100644 index 00000000..b5b43252 --- /dev/null +++ b/xorg/xcb-util-cursor/checksums @@ -0,0 +1 @@ +a322332716a384c94d3cbf98f2d8fe2ce63c2fe7e2b26664b6cea1d411723df8 xcb-util-cursor-0.1.3.tar.gz diff --git a/xorg/xcb-util-cursor/depends b/xorg/xcb-util-cursor/depends new file mode 100644 index 00000000..9a1bd190 --- /dev/null +++ b/xorg/xcb-util-cursor/depends @@ -0,0 +1,5 @@ +libXau +libxcb +xcb-util +xcb-util-image +xcb-util-renderutil diff --git a/xorg/xcb-util-cursor/sources b/xorg/xcb-util-cursor/sources new file mode 100644 index 00000000..272f3902 --- /dev/null +++ b/xorg/xcb-util-cursor/sources @@ -0,0 +1 @@ +https://xcb.freedesktop.org/dist/xcb-util-cursor-0.1.3.tar.gz diff --git a/xorg/xcb-util-cursor/version b/xorg/xcb-util-cursor/version new file mode 100644 index 00000000..f8721162 --- /dev/null +++ b/xorg/xcb-util-cursor/version @@ -0,0 +1 @@ +0.1.3 1 diff --git a/xorg/xcb-util-image/build b/xorg/xcb-util-image/build new file mode 100755 index 00000000..7ca84fcf --- /dev/null +++ b/xorg/xcb-util-image/build @@ -0,0 +1,8 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --disable-static + +make +make DESTDIR="$1" install diff --git a/xorg/xcb-util-image/checksums b/xorg/xcb-util-image/checksums new file mode 100644 index 00000000..8b74cbc7 --- /dev/null +++ b/xorg/xcb-util-image/checksums @@ -0,0 +1 @@ +cb2c86190cf6216260b7357a57d9100811bb6f78c24576a3a5bfef6ad3740a42 xcb-util-image-0.4.0.tar.gz diff --git a/xorg/xcb-util-image/depends b/xorg/xcb-util-image/depends new file mode 100644 index 00000000..a1267485 --- /dev/null +++ b/xorg/xcb-util-image/depends @@ -0,0 +1,3 @@ +libXau +libxcb +xcb-util diff --git a/xorg/xcb-util-image/sources b/xorg/xcb-util-image/sources new file mode 100644 index 00000000..f8a5eeab --- /dev/null +++ b/xorg/xcb-util-image/sources @@ -0,0 +1 @@ +https://xcb.freedesktop.org/dist/xcb-util-image-0.4.0.tar.gz diff --git a/xorg/xcb-util-image/version b/xorg/xcb-util-image/version new file mode 100644 index 00000000..6f3c0f7f --- /dev/null +++ b/xorg/xcb-util-image/version @@ -0,0 +1 @@ +0.4.0 1 diff --git a/xorg/xcb-util-keysyms/build b/xorg/xcb-util-keysyms/build new file mode 100755 index 00000000..7ca84fcf --- /dev/null +++ b/xorg/xcb-util-keysyms/build @@ -0,0 +1,8 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --disable-static + +make +make DESTDIR="$1" install diff --git a/xorg/xcb-util-keysyms/checksums b/xorg/xcb-util-keysyms/checksums new file mode 100644 index 00000000..052b634d --- /dev/null +++ b/xorg/xcb-util-keysyms/checksums @@ -0,0 +1 @@ +0ef8490ff1dede52b7de533158547f8b454b241aa3e4dcca369507f66f216dd9 xcb-util-keysyms-0.4.0.tar.bz2 diff --git a/xorg/xcb-util-keysyms/depends b/xorg/xcb-util-keysyms/depends new file mode 100644 index 00000000..dc6f86ff --- /dev/null +++ b/xorg/xcb-util-keysyms/depends @@ -0,0 +1,2 @@ +libxcb +xcb-util make diff --git a/xorg/xcb-util-keysyms/sources b/xorg/xcb-util-keysyms/sources new file mode 100644 index 00000000..5df26df5 --- /dev/null +++ b/xorg/xcb-util-keysyms/sources @@ -0,0 +1 @@ +https://xcb.freedesktop.org/dist/xcb-util-keysyms-0.4.0.tar.bz2 diff --git a/xorg/xcb-util-keysyms/version b/xorg/xcb-util-keysyms/version new file mode 100644 index 00000000..6f3c0f7f --- /dev/null +++ b/xorg/xcb-util-keysyms/version @@ -0,0 +1 @@ +0.4.0 1 diff --git a/xorg/xcb-util-renderutil/build b/xorg/xcb-util-renderutil/build new file mode 100755 index 00000000..7ca84fcf --- /dev/null +++ b/xorg/xcb-util-renderutil/build @@ -0,0 +1,8 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --disable-static + +make +make DESTDIR="$1" install diff --git a/xorg/xcb-util-renderutil/checksums b/xorg/xcb-util-renderutil/checksums new file mode 100644 index 00000000..e7cfba86 --- /dev/null +++ b/xorg/xcb-util-renderutil/checksums @@ -0,0 +1 @@ +55eee797e3214fe39d0f3f4d9448cc53cffe06706d108824ea37bb79fcedcad5 xcb-util-renderutil-0.3.9.tar.gz diff --git a/xorg/xcb-util-renderutil/depends b/xorg/xcb-util-renderutil/depends new file mode 100644 index 00000000..90b9d3b0 --- /dev/null +++ b/xorg/xcb-util-renderutil/depends @@ -0,0 +1,2 @@ +libXau +libxcb diff --git a/xorg/xcb-util-renderutil/sources b/xorg/xcb-util-renderutil/sources new file mode 100644 index 00000000..3ae63f25 --- /dev/null +++ b/xorg/xcb-util-renderutil/sources @@ -0,0 +1 @@ +https://xcb.freedesktop.org/dist/xcb-util-renderutil-0.3.9.tar.gz diff --git a/xorg/xcb-util-renderutil/version b/xorg/xcb-util-renderutil/version new file mode 100644 index 00000000..fb042810 --- /dev/null +++ b/xorg/xcb-util-renderutil/version @@ -0,0 +1 @@ +0.3.9 1 diff --git a/xorg/xcb-util-wm/build b/xorg/xcb-util-wm/build new file mode 100755 index 00000000..7ca84fcf --- /dev/null +++ b/xorg/xcb-util-wm/build @@ -0,0 +1,8 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --disable-static + +make +make DESTDIR="$1" install diff --git a/xorg/xcb-util-wm/checksums b/xorg/xcb-util-wm/checksums new file mode 100644 index 00000000..9bb26156 --- /dev/null +++ b/xorg/xcb-util-wm/checksums @@ -0,0 +1 @@ +28bf8179640eaa89276d2b0f1ce4285103d136be6c98262b6151aaee1d3c2a3f xcb-util-wm-0.4.1.tar.bz2 diff --git a/xorg/xcb-util-wm/depends b/xorg/xcb-util-wm/depends new file mode 100644 index 00000000..dc6f86ff --- /dev/null +++ b/xorg/xcb-util-wm/depends @@ -0,0 +1,2 @@ +libxcb +xcb-util make diff --git a/xorg/xcb-util-wm/sources b/xorg/xcb-util-wm/sources new file mode 100644 index 00000000..2a675524 --- /dev/null +++ b/xorg/xcb-util-wm/sources @@ -0,0 +1 @@ +https://xcb.freedesktop.org/dist/xcb-util-wm-0.4.1.tar.bz2 diff --git a/xorg/xcb-util-wm/version b/xorg/xcb-util-wm/version new file mode 100644 index 00000000..3d58e2e2 --- /dev/null +++ b/xorg/xcb-util-wm/version @@ -0,0 +1 @@ +0.4.1 1 diff --git a/xorg/xcb-util/build b/xorg/xcb-util/build new file mode 100755 index 00000000..7ca84fcf --- /dev/null +++ b/xorg/xcb-util/build @@ -0,0 +1,8 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --disable-static + +make +make DESTDIR="$1" install diff --git a/xorg/xcb-util/checksums b/xorg/xcb-util/checksums new file mode 100644 index 00000000..8e6359c8 --- /dev/null +++ b/xorg/xcb-util/checksums @@ -0,0 +1 @@ +46e49469cb3b594af1d33176cd7565def2be3fa8be4371d62271fabb5eae50e9 xcb-util-0.4.0.tar.bz2 diff --git a/xorg/xcb-util/depends b/xorg/xcb-util/depends new file mode 100644 index 00000000..90b9d3b0 --- /dev/null +++ b/xorg/xcb-util/depends @@ -0,0 +1,2 @@ +libXau +libxcb diff --git a/xorg/xcb-util/sources b/xorg/xcb-util/sources new file mode 100644 index 00000000..630c1388 --- /dev/null +++ b/xorg/xcb-util/sources @@ -0,0 +1 @@ +https://xcb.freedesktop.org/dist/xcb-util-0.4.0.tar.bz2 diff --git a/xorg/xcb-util/version b/xorg/xcb-util/version new file mode 100644 index 00000000..6f3c0f7f --- /dev/null +++ b/xorg/xcb-util/version @@ -0,0 +1 @@ +0.4.0 1 diff --git a/xorg/xf86-input-libinput/build b/xorg/xf86-input-libinput/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/xf86-input-libinput/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/xf86-input-libinput/checksums b/xorg/xf86-input-libinput/checksums new file mode 100644 index 00000000..2ce71aad --- /dev/null +++ b/xorg/xf86-input-libinput/checksums @@ -0,0 +1 @@ +c28b56a21754b972db31798e6a4cf4dc9d69208d08f8fe41701a94def5e94bee xf86-input-libinput-0.29.0.tar.bz2 diff --git a/xorg/xf86-input-libinput/depends b/xorg/xf86-input-libinput/depends new file mode 100644 index 00000000..f89a2267 --- /dev/null +++ b/xorg/xf86-input-libinput/depends @@ -0,0 +1,2 @@ +libinput +xorg-server diff --git a/xorg/xf86-input-libinput/sources b/xorg/xf86-input-libinput/sources new file mode 100644 index 00000000..9d323db1 --- /dev/null +++ b/xorg/xf86-input-libinput/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/driver/xf86-input-libinput-0.29.0.tar.bz2 diff --git a/xorg/xf86-input-libinput/version b/xorg/xf86-input-libinput/version new file mode 100644 index 00000000..0b56a8aa --- /dev/null +++ b/xorg/xf86-input-libinput/version @@ -0,0 +1 @@ +0.29.0 1 diff --git a/xorg/xf86-video-amdgpu/build b/xorg/xf86-video-amdgpu/build new file mode 100755 index 00000000..3054c8be --- /dev/null +++ b/xorg/xf86-video-amdgpu/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +export LDFLAGS="-Wl,-z,lazy" + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/xf86-video-amdgpu/checksums b/xorg/xf86-video-amdgpu/checksums new file mode 100644 index 00000000..0d53d0ef --- /dev/null +++ b/xorg/xf86-video-amdgpu/checksums @@ -0,0 +1 @@ +4f0ea4e0ae61995ac2b7c72433d31deab63b60c78763020aaa1b28696124fe5d xf86-video-amdgpu-19.1.0.tar.bz2 diff --git a/xorg/xf86-video-amdgpu/depends b/xorg/xf86-video-amdgpu/depends new file mode 100644 index 00000000..0d1c94e3 --- /dev/null +++ b/xorg/xf86-video-amdgpu/depends @@ -0,0 +1,6 @@ +eudev +expat +libdrm +libpciaccess +mesa +xorgproto diff --git a/xorg/xf86-video-amdgpu/sources b/xorg/xf86-video-amdgpu/sources new file mode 100644 index 00000000..9d4ca8e6 --- /dev/null +++ b/xorg/xf86-video-amdgpu/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/driver/xf86-video-amdgpu-19.1.0.tar.bz2 diff --git a/xorg/xf86-video-amdgpu/version b/xorg/xf86-video-amdgpu/version new file mode 100644 index 00000000..119d7b4b --- /dev/null +++ b/xorg/xf86-video-amdgpu/version @@ -0,0 +1 @@ +19.1.0 1 diff --git a/xorg/xf86-video-ati/build b/xorg/xf86-video-ati/build new file mode 100755 index 00000000..3054c8be --- /dev/null +++ b/xorg/xf86-video-ati/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +export LDFLAGS="-Wl,-z,lazy" + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/xf86-video-ati/checksums b/xorg/xf86-video-ati/checksums new file mode 100644 index 00000000..740c30d6 --- /dev/null +++ b/xorg/xf86-video-ati/checksums @@ -0,0 +1 @@ +c05c6e0c396a0148113f1836cfab7f2e43f784c9b7041f11e9cab40a4bc0c90f xf86-video-ati-19.1.0.tar.gz diff --git a/xorg/xf86-video-ati/depends b/xorg/xf86-video-ati/depends new file mode 100644 index 00000000..0d1c94e3 --- /dev/null +++ b/xorg/xf86-video-ati/depends @@ -0,0 +1,6 @@ +eudev +expat +libdrm +libpciaccess +mesa +xorgproto diff --git a/xorg/xf86-video-ati/sources b/xorg/xf86-video-ati/sources new file mode 100644 index 00000000..b1a4fb8b --- /dev/null +++ b/xorg/xf86-video-ati/sources @@ -0,0 +1 @@ +https://x.org/releases/individual/driver/xf86-video-ati-19.1.0.tar.gz diff --git a/xorg/xf86-video-ati/version b/xorg/xf86-video-ati/version new file mode 100644 index 00000000..119d7b4b --- /dev/null +++ b/xorg/xf86-video-ati/version @@ -0,0 +1 @@ +19.1.0 1 diff --git a/xorg/xf86-video-intel/build b/xorg/xf86-video-intel/build new file mode 100755 index 00000000..d0c7c0bd --- /dev/null +++ b/xorg/xf86-video-intel/build @@ -0,0 +1,13 @@ +#!/bin/sh -e + +export LDFLAGS="-Wl,-z,lazy" + +autoreconf -i + +./configure \ + --prefix=/usr \ + --libexecdir=/usr/lib \ + --with-default-dri=3 + +make +make DESTDIR="$1" install diff --git a/xorg/xf86-video-intel/checksums b/xorg/xf86-video-intel/checksums new file mode 100644 index 00000000..6285661b --- /dev/null +++ b/xorg/xf86-video-intel/checksums @@ -0,0 +1 @@ +10308bd230db2b35fe4371ffa06de36753a9a58dc725d43504ebf7f72c3c0395 xf86-video-intel-c6cb1b199598c572484fb4e30e1026be9d4ccc31.tar.gz diff --git a/xorg/xf86-video-intel/depends b/xorg/xf86-video-intel/depends new file mode 100644 index 00000000..b7fd39a8 --- /dev/null +++ b/xorg/xf86-video-intel/depends @@ -0,0 +1,10 @@ +autoconf make +automake make +eudev +libXScrnSaver +libXcursor +libXinerama +libXrandr +libdrm +libpciaccess +libtool make diff --git a/xorg/xf86-video-intel/sources b/xorg/xf86-video-intel/sources new file mode 100644 index 00000000..fe655cdf --- /dev/null +++ b/xorg/xf86-video-intel/sources @@ -0,0 +1 @@ +https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel/-/archive/c6cb1b199598c572484fb4e30e1026be9d4ccc31/xf86-video-intel-c6cb1b199598c572484fb4e30e1026be9d4ccc31.tar.gz diff --git a/xorg/xf86-video-intel/version b/xorg/xf86-video-intel/version new file mode 100644 index 00000000..c5d89762 --- /dev/null +++ b/xorg/xf86-video-intel/version @@ -0,0 +1 @@ +c6cb1b199598c572484fb4e30e1026be9d4ccc31 1 diff --git a/xorg/xf86-video-nouveau/build b/xorg/xf86-video-nouveau/build new file mode 100755 index 00000000..3054c8be --- /dev/null +++ b/xorg/xf86-video-nouveau/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +export LDFLAGS="-Wl,-z,lazy" + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/xf86-video-nouveau/checksums b/xorg/xf86-video-nouveau/checksums new file mode 100644 index 00000000..ff53e974 --- /dev/null +++ b/xorg/xf86-video-nouveau/checksums @@ -0,0 +1 @@ +304060806415579cdb5c1f71f1c54d11cacb431b5552b170decbc883ed43bf06 xf86-video-nouveau-1.0.16.tar.bz2 diff --git a/xorg/xf86-video-nouveau/depends b/xorg/xf86-video-nouveau/depends new file mode 100644 index 00000000..4000b008 --- /dev/null +++ b/xorg/xf86-video-nouveau/depends @@ -0,0 +1,3 @@ +eudev +libdrm +xorgproto diff --git a/xorg/xf86-video-nouveau/sources b/xorg/xf86-video-nouveau/sources new file mode 100644 index 00000000..8c48367e --- /dev/null +++ b/xorg/xf86-video-nouveau/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/driver/xf86-video-nouveau-1.0.16.tar.bz2 diff --git a/xorg/xf86-video-nouveau/version b/xorg/xf86-video-nouveau/version new file mode 100644 index 00000000..a4e01b6a --- /dev/null +++ b/xorg/xf86-video-nouveau/version @@ -0,0 +1 @@ +1.0.16 1 diff --git a/xorg/xf86-video-vesa/build b/xorg/xf86-video-vesa/build new file mode 100755 index 00000000..3054c8be --- /dev/null +++ b/xorg/xf86-video-vesa/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +export LDFLAGS="-Wl,-z,lazy" + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/xf86-video-vesa/checksums b/xorg/xf86-video-vesa/checksums new file mode 100644 index 00000000..581b5037 --- /dev/null +++ b/xorg/xf86-video-vesa/checksums @@ -0,0 +1 @@ +2982dd4eaf649101bd2c0dde37151a65157f6cbe120a692e6a6de764e36e03ea xf86-video-vesa-2.4.0.tar.gz diff --git a/xorg/xf86-video-vesa/depends b/xorg/xf86-video-vesa/depends new file mode 100644 index 00000000..831090ef --- /dev/null +++ b/xorg/xf86-video-vesa/depends @@ -0,0 +1,3 @@ +libXi +xorg-util-macros make +xorgproto make diff --git a/xorg/xf86-video-vesa/sources b/xorg/xf86-video-vesa/sources new file mode 100644 index 00000000..d27258e8 --- /dev/null +++ b/xorg/xf86-video-vesa/sources @@ -0,0 +1 @@ +https://xorg.freedesktop.org/releases/individual/driver/xf86-video-vesa-2.4.0.tar.gz diff --git a/xorg/xf86-video-vesa/version b/xorg/xf86-video-vesa/version new file mode 100644 index 00000000..7afb4de6 --- /dev/null +++ b/xorg/xf86-video-vesa/version @@ -0,0 +1 @@ +2.4.0 1 diff --git a/xorg/xinit/build b/xorg/xinit/build new file mode 100755 index 00000000..311b9d59 --- /dev/null +++ b/xorg/xinit/build @@ -0,0 +1,10 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --with-xinitdir=/etc/X11/xinit + +make +make DESTDIR="$1" install + +sed -i 's/enable_xauth=1/enable_xauth=0/' "$1/usr/bin/startx" diff --git a/xorg/xinit/checksums b/xorg/xinit/checksums new file mode 100644 index 00000000..7f0e5266 --- /dev/null +++ b/xorg/xinit/checksums @@ -0,0 +1 @@ +de9b8f617b68a70f6caf87da01fcf0ebd2b75690cdcba9c921d0ef54fa54abb9 xinit-1.4.1.tar.bz2 diff --git a/xorg/xinit/depends b/xorg/xinit/depends new file mode 100644 index 00000000..54034cdd --- /dev/null +++ b/xorg/xinit/depends @@ -0,0 +1 @@ +libX11 make diff --git a/xorg/xinit/sources b/xorg/xinit/sources new file mode 100644 index 00000000..7e32209b --- /dev/null +++ b/xorg/xinit/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/app/xinit-1.4.1.tar.bz2 diff --git a/xorg/xinit/version b/xorg/xinit/version new file mode 100644 index 00000000..a50a0a64 --- /dev/null +++ b/xorg/xinit/version @@ -0,0 +1 @@ +1.4.1 2 diff --git a/xorg/xinput/build b/xorg/xinput/build new file mode 100755 index 00000000..373bceed --- /dev/null +++ b/xorg/xinput/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --mandir=/usr/share/man \ + --localstatedir=/var + +make +make DESTDIR="$1" install diff --git a/xorg/xinput/checksums b/xorg/xinput/checksums new file mode 100644 index 00000000..ffc3d73f --- /dev/null +++ b/xorg/xinput/checksums @@ -0,0 +1 @@ +9f29f9bfe387c5a3d582f9edc8c5a753510ecc6fdfb154c03b5cea5975b10ce4 xinput-1.6.3.tar.gz diff --git a/xorg/xinput/depends b/xorg/xinput/depends new file mode 100644 index 00000000..4118e164 --- /dev/null +++ b/xorg/xinput/depends @@ -0,0 +1,2 @@ +libX11 +libXmu diff --git a/xorg/xinput/sources b/xorg/xinput/sources new file mode 100644 index 00000000..5cafdf91 --- /dev/null +++ b/xorg/xinput/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/app/xinput-1.6.3.tar.gz diff --git a/xorg/xinput/version b/xorg/xinput/version new file mode 100644 index 00000000..05465e05 --- /dev/null +++ b/xorg/xinput/version @@ -0,0 +1 @@ +1.6.3 1 diff --git a/xorg/xkbcomp/build b/xorg/xkbcomp/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/xkbcomp/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/xkbcomp/checksums b/xorg/xkbcomp/checksums new file mode 100644 index 00000000..8c8385c8 --- /dev/null +++ b/xorg/xkbcomp/checksums @@ -0,0 +1 @@ +6dd8bcb9be7e85bd7294abe261b8c7b0539d2fc93e41b80fb8bd013767ce8424 xkbcomp-1.4.2.tar.bz2 diff --git a/xorg/xkbcomp/depends b/xorg/xkbcomp/depends new file mode 100644 index 00000000..6d64af8e --- /dev/null +++ b/xorg/xkbcomp/depends @@ -0,0 +1,2 @@ +libX11 make +libxkbfile make diff --git a/xorg/xkbcomp/sources b/xorg/xkbcomp/sources new file mode 100644 index 00000000..e089a15b --- /dev/null +++ b/xorg/xkbcomp/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/app/xkbcomp-1.4.2.tar.bz2 diff --git a/xorg/xkbcomp/version b/xorg/xkbcomp/version new file mode 100644 index 00000000..4ff136af --- /dev/null +++ b/xorg/xkbcomp/version @@ -0,0 +1 @@ +1.4.2 1 diff --git a/xorg/xkeyboard-config/build b/xorg/xkeyboard-config/build new file mode 100755 index 00000000..abfcca36 --- /dev/null +++ b/xorg/xkeyboard-config/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --with-xkb-rules-symlink=xfree86,xorg \ + --enable-compat-rules + +make +make DESTDIR="$1" install diff --git a/xorg/xkeyboard-config/checksums b/xorg/xkeyboard-config/checksums new file mode 100644 index 00000000..59234a3b --- /dev/null +++ b/xorg/xkeyboard-config/checksums @@ -0,0 +1 @@ +69adb25b0fc64e4075f8ec0eab8d869892419f474f91fb69db1713de2062bdce xkeyboard-config-2.28.tar.bz2 diff --git a/xorg/xkeyboard-config/depends b/xorg/xkeyboard-config/depends new file mode 100644 index 00000000..0f146e0c --- /dev/null +++ b/xorg/xkeyboard-config/depends @@ -0,0 +1,2 @@ +libX11 make +xkbcomp diff --git a/xorg/xkeyboard-config/sources b/xorg/xkeyboard-config/sources new file mode 100644 index 00000000..2139e9dc --- /dev/null +++ b/xorg/xkeyboard-config/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.28.tar.bz2 diff --git a/xorg/xkeyboard-config/version b/xorg/xkeyboard-config/version new file mode 100644 index 00000000..61245cf1 --- /dev/null +++ b/xorg/xkeyboard-config/version @@ -0,0 +1 @@ +2.28 1 diff --git a/xorg/xorg-server/build b/xorg/xorg-server/build new file mode 100755 index 00000000..499f3435 --- /dev/null +++ b/xorg/xorg-server/build @@ -0,0 +1,25 @@ +#!/bin/sh -e + +patch -p1 < rootless_modesetting.patch + +./configure \ + --prefix=/usr \ + --localstatedir=/var \ + --disable-systemd-logind \ + --disable-xwayland \ + --disable-unit-tests \ + --enable-glx \ + --enable-dri \ + --enable-dri2 \ + --enable-dri3 \ + --enable-glamor \ + --enable-xorg \ + --enable-config-udev \ + --enable-config-udev-kms \ + --with-sha1=libcrypto \ + --with-systemd-daemon=off + +make +make DESTDIR="$1" install + +rm -f "$1/usr/share/X11/xorg.conf.d/10-evdev.conf" diff --git a/xorg/xorg-server/checksums b/xorg/xorg-server/checksums new file mode 100644 index 00000000..709b48f7 --- /dev/null +++ b/xorg/xorg-server/checksums @@ -0,0 +1,2 @@ +6316146304e6e8a36d5904987ae2917b5d5b195dc9fc63d67f7aca137e5a51d1 xorg-server-1.20.6.tar.bz2 +c98ad9376f20ab25463ef74bb19f2dbe874a19918b27b430c8e632d272379129 rootless_modesetting.patch diff --git a/xorg/xorg-server/depends b/xorg/xorg-server/depends new file mode 100644 index 00000000..51901117 --- /dev/null +++ b/xorg/xorg-server/depends @@ -0,0 +1,24 @@ +bzip2 +eudev +freetype-harfbuzz +libX11 +libXau +libXdamage +libXext +libXfixes +libXfont2 +libXxf86vm +libdrm +libepoxy +libfontenc +libpciaccess +libressl +libxcb +libxkbfile +libxshmfence +mesa +pixman +xinit +xkeyboard-config +xtrans make +zlib diff --git a/xorg/xorg-server/patches/rootless_modesetting.patch b/xorg/xorg-server/patches/rootless_modesetting.patch new file mode 100644 index 00000000..d578208d --- /dev/null +++ b/xorg/xorg-server/patches/rootless_modesetting.patch @@ -0,0 +1,14 @@ +--- xorg-server-1.20.3/hw/xfree86/drivers/modesetting/driver.c ++++ xorg-server-1.20.3/hw/xfree86/drivers/modesetting/driver.c +@@ -1528,6 +1528,10 @@ + if (ms->fd_passed) + return TRUE; + ++ ret = drmIsMaster(ms->fd); ++ if (ret) ++ return TRUE; ++ + ret = drmSetMaster(ms->fd); + if (ret) + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "drmSetMaster failed: %s\n", + diff --git a/xorg/xorg-server/post-install b/xorg/xorg-server/post-install new file mode 100755 index 00000000..4185f793 --- /dev/null +++ b/xorg/xorg-server/post-install @@ -0,0 +1,15 @@ +#!/bin/sh + +cat <<EOF + +NOTE: You must be a part of the [1mvideo[m group + for rootless xorg-server to work. + +NOTE: This groups based permissions model may not + be suitable if KISS will be used as a multi + user system. Further configuration can be + done at your own discretion. + +-> addgroup USER video + +EOF diff --git a/xorg/xorg-server/sources b/xorg/xorg-server/sources new file mode 100644 index 00000000..1f481ed7 --- /dev/null +++ b/xorg/xorg-server/sources @@ -0,0 +1,2 @@ +https://www.x.org/releases/individual/xserver/xorg-server-1.20.6.tar.bz2 +patches/rootless_modesetting.patch diff --git a/xorg/xorg-server/version b/xorg/xorg-server/version new file mode 100644 index 00000000..7c34a547 --- /dev/null +++ b/xorg/xorg-server/version @@ -0,0 +1 @@ +1.20.6 1 diff --git a/xorg/xorg-util-macros/build b/xorg/xorg-util-macros/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/xorg-util-macros/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/xorg-util-macros/checksums b/xorg/xorg-util-macros/checksums new file mode 100644 index 00000000..cb85df29 --- /dev/null +++ b/xorg/xorg-util-macros/checksums @@ -0,0 +1 @@ +d7e43376ad220411499a79735020f9d145fdc159284867e99467e0d771f3e712 util-macros-1.19.2.tar.bz2 diff --git a/xorg/xorg-util-macros/sources b/xorg/xorg-util-macros/sources new file mode 100644 index 00000000..91ad7613 --- /dev/null +++ b/xorg/xorg-util-macros/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/util/util-macros-1.19.2.tar.bz2 diff --git a/xorg/xorg-util-macros/version b/xorg/xorg-util-macros/version new file mode 100644 index 00000000..2148dd1e --- /dev/null +++ b/xorg/xorg-util-macros/version @@ -0,0 +1 @@ +1.19.2 1 diff --git a/xorg/xorgproto/build b/xorg/xorgproto/build new file mode 100755 index 00000000..20f084fe --- /dev/null +++ b/xorg/xorgproto/build @@ -0,0 +1,8 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --enable-legacy + +make +make DESTDIR="$1" install diff --git a/xorg/xorgproto/checksums b/xorg/xorgproto/checksums new file mode 100644 index 00000000..7f973586 --- /dev/null +++ b/xorg/xorgproto/checksums @@ -0,0 +1 @@ +46ecd0156c561d41e8aa87ce79340910cdf38373b759e737fcbba5df508e7b8e xorgproto-2019.2.tar.bz2 diff --git a/xorg/xorgproto/sources b/xorg/xorgproto/sources new file mode 100644 index 00000000..0fbd8d2e --- /dev/null +++ b/xorg/xorgproto/sources @@ -0,0 +1 @@ +https://xorg.freedesktop.org/archive/individual/proto/xorgproto-2019.2.tar.bz2 diff --git a/xorg/xorgproto/version b/xorg/xorgproto/version new file mode 100644 index 00000000..7730caf9 --- /dev/null +++ b/xorg/xorgproto/version @@ -0,0 +1 @@ +2019.2 1 diff --git a/xorg/xprop/build b/xorg/xprop/build new file mode 100755 index 00000000..373bceed --- /dev/null +++ b/xorg/xprop/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --mandir=/usr/share/man \ + --localstatedir=/var + +make +make DESTDIR="$1" install diff --git a/xorg/xprop/checksums b/xorg/xprop/checksums new file mode 100644 index 00000000..70559e33 --- /dev/null +++ b/xorg/xprop/checksums @@ -0,0 +1 @@ +dddb6e208ffa515e68f001c22077a465f1365a4bcf91d9b37f336a6c0d15400d xprop-1.2.4.tar.gz diff --git a/xorg/xprop/depends b/xorg/xprop/depends new file mode 100644 index 00000000..4118e164 --- /dev/null +++ b/xorg/xprop/depends @@ -0,0 +1,2 @@ +libX11 +libXmu diff --git a/xorg/xprop/sources b/xorg/xprop/sources new file mode 100644 index 00000000..59cbf611 --- /dev/null +++ b/xorg/xprop/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/app/xprop-1.2.4.tar.gz diff --git a/xorg/xprop/version b/xorg/xprop/version new file mode 100644 index 00000000..d66671c6 --- /dev/null +++ b/xorg/xprop/version @@ -0,0 +1 @@ +1.2.4 1 diff --git a/xorg/xrandr/build b/xorg/xrandr/build new file mode 100755 index 00000000..373bceed --- /dev/null +++ b/xorg/xrandr/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --mandir=/usr/share/man \ + --localstatedir=/var + +make +make DESTDIR="$1" install diff --git a/xorg/xrandr/checksums b/xorg/xrandr/checksums new file mode 100644 index 00000000..f64563e2 --- /dev/null +++ b/xorg/xrandr/checksums @@ -0,0 +1 @@ +7bc76daf9d72f8aff885efad04ce06b90488a1a169d118dea8a2b661832e8762 xrandr-1.5.1.tar.xz diff --git a/xorg/xrandr/depends b/xorg/xrandr/depends new file mode 100644 index 00000000..6a84a73f --- /dev/null +++ b/xorg/xrandr/depends @@ -0,0 +1,2 @@ +libXrandr +xorg-util-macros make diff --git a/xorg/xrandr/sources b/xorg/xrandr/sources new file mode 100644 index 00000000..597a5258 --- /dev/null +++ b/xorg/xrandr/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/app/xrandr-1.5.1.tar.xz diff --git a/xorg/xrandr/version b/xorg/xrandr/version new file mode 100644 index 00000000..0872adad --- /dev/null +++ b/xorg/xrandr/version @@ -0,0 +1 @@ +1.5.1 1 diff --git a/xorg/xrdb/build b/xorg/xrdb/build new file mode 100755 index 00000000..373bceed --- /dev/null +++ b/xorg/xrdb/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --mandir=/usr/share/man \ + --localstatedir=/var + +make +make DESTDIR="$1" install diff --git a/xorg/xrdb/checksums b/xorg/xrdb/checksums new file mode 100644 index 00000000..231c9077 --- /dev/null +++ b/xorg/xrdb/checksums @@ -0,0 +1 @@ +f23a65cfa1f7126040d68b6cf1e4567523edac10f8dc06f23d840d330c7c6946 xrdb-1.2.0.tar.bz2 diff --git a/xorg/xrdb/depends b/xorg/xrdb/depends new file mode 100644 index 00000000..ea62ae5b --- /dev/null +++ b/xorg/xrdb/depends @@ -0,0 +1,3 @@ +libX11 +libXmu +xorg-util-macros make diff --git a/xorg/xrdb/sources b/xorg/xrdb/sources new file mode 100644 index 00000000..2e3a67f7 --- /dev/null +++ b/xorg/xrdb/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/app/xrdb-1.2.0.tar.bz2 diff --git a/xorg/xrdb/version b/xorg/xrdb/version new file mode 100644 index 00000000..8b9a47f0 --- /dev/null +++ b/xorg/xrdb/version @@ -0,0 +1 @@ +1.2.0 1 diff --git a/xorg/xset/build b/xorg/xset/build new file mode 100755 index 00000000..80ce93e8 --- /dev/null +++ b/xorg/xset/build @@ -0,0 +1,10 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var + +make +make DESTDIR="$1" install diff --git a/xorg/xset/checksums b/xorg/xset/checksums new file mode 100644 index 00000000..16c65894 --- /dev/null +++ b/xorg/xset/checksums @@ -0,0 +1 @@ +e4fd95280df52a88e9b0abc1fee11dcf0f34fc24041b9f45a247e52df941c957 xset-1.2.4.tar.bz2 diff --git a/xorg/xset/depends b/xorg/xset/depends new file mode 100644 index 00000000..16c5c7f9 --- /dev/null +++ b/xorg/xset/depends @@ -0,0 +1,2 @@ +libXmu +xorg-util-macros make diff --git a/xorg/xset/sources b/xorg/xset/sources new file mode 100644 index 00000000..1dc1534b --- /dev/null +++ b/xorg/xset/sources @@ -0,0 +1 @@ +https://x.org/releases/individual/app/xset-1.2.4.tar.bz2 diff --git a/xorg/xset/version b/xorg/xset/version new file mode 100644 index 00000000..d66671c6 --- /dev/null +++ b/xorg/xset/version @@ -0,0 +1 @@ +1.2.4 1 diff --git a/xorg/xsetroot/build b/xorg/xsetroot/build new file mode 100755 index 00000000..373bceed --- /dev/null +++ b/xorg/xsetroot/build @@ -0,0 +1,9 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr \ + --mandir=/usr/share/man \ + --localstatedir=/var + +make +make DESTDIR="$1" install diff --git a/xorg/xsetroot/checksums b/xorg/xsetroot/checksums new file mode 100644 index 00000000..b95d6eb3 --- /dev/null +++ b/xorg/xsetroot/checksums @@ -0,0 +1 @@ +9d007f5119be09924ac3a5d2bd506f32e6c164b82633c88d2aff26311e1a2a2b xsetroot-1.1.2.tar.gz diff --git a/xorg/xsetroot/depends b/xorg/xsetroot/depends new file mode 100644 index 00000000..9640b489 --- /dev/null +++ b/xorg/xsetroot/depends @@ -0,0 +1,5 @@ +libXmu +libXrender +libXfixes +libXcursor +xbitmaps diff --git a/xorg/xsetroot/sources b/xorg/xsetroot/sources new file mode 100644 index 00000000..82fa909f --- /dev/null +++ b/xorg/xsetroot/sources @@ -0,0 +1 @@ +https://www.x.org/archive//individual/app/xsetroot-1.1.2.tar.gz diff --git a/xorg/xsetroot/version b/xorg/xsetroot/version new file mode 100644 index 00000000..909c7076 --- /dev/null +++ b/xorg/xsetroot/version @@ -0,0 +1 @@ +1.1.2 1 diff --git a/xorg/xtrans/build b/xorg/xtrans/build new file mode 100755 index 00000000..6daf22f8 --- /dev/null +++ b/xorg/xtrans/build @@ -0,0 +1,7 @@ +#!/bin/sh -e + +./configure \ + --prefix=/usr + +make +make DESTDIR="$1" install diff --git a/xorg/xtrans/checksums b/xorg/xtrans/checksums new file mode 100644 index 00000000..7d58cadb --- /dev/null +++ b/xorg/xtrans/checksums @@ -0,0 +1 @@ +377c4491593c417946efcd2c7600d1e62639f7a8bbca391887e2c4679807d773 xtrans-1.4.0.tar.bz2 diff --git a/xorg/xtrans/sources b/xorg/xtrans/sources new file mode 100644 index 00000000..8bba05b4 --- /dev/null +++ b/xorg/xtrans/sources @@ -0,0 +1 @@ +https://www.x.org/releases/individual/lib/xtrans-1.4.0.tar.bz2 diff --git a/xorg/xtrans/version b/xorg/xtrans/version new file mode 100644 index 00000000..7f14d8f6 --- /dev/null +++ b/xorg/xtrans/version @@ -0,0 +1 @@ +1.4.0 2 |