首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
V2EX  ›  奇思妙想

GPL 开源协议才是对自由软件世界的独立性之最大威胁

  •  
  •   noli · 57 天前 · 2622 次点击
    这是一个创建于 57 天前的主题,其中的信息可能已经有所发展或是发生改变。
    仔细想想这个问题,我觉得应该会有相当多的人明白 GPL 背后隐藏的巨大陷阱。
    IBM,Oracle 等等,愿意投入人力物力到 GPL 的代码之中,真的是一种慷慨吗?

    完全 GPL 的 Linux 内核,除了真的是开源的之外,现在真的对我们来说是自由软件吗?
    我们实际上真的能够定制 Linux 内核吗?有多少公司或者团队实际上能做得到?
    我们实际上可以自由地往内核里面添加想要的功能吗?谁可以做到?

    更重要的是,基于 GPL 软件巨头们能够排除其他非 GPL 的竞争对手,同时不会破坏垄断巨头之间的默契。

    仔细想想,作为小团队,小个体的我们,除了使用被设定好功能的 GPL 软件,真的能够从 GPL 中获得自由定制功能吗?真的能为更多软件用户作可持续的贡献吗?
    43 回复  |  直到 2019-03-08 22:01:14 +08:00
        1
    azh7138m   57 天前
    关于 copyleft
    Freedom 0 – the freedom to use the work,
    Freedom 1 – the freedom to study the work,
    Freedom 2 – the freedom to copy and share the work with others,
    Freedom 3 – the freedom to modify the work, and the freedom to distribute modified and therefore derivative works.

    我觉得是。
    +1
    能,没有那么麻烦的。
    可以,没有那么麻烦的。只是不会被合回主线。
    能,能。
        2
    agagega   57 天前 via iPad
    你的逻辑对于 MIT、BSD 这些不是一样?
        3
    noli   57 天前
    @agagega GPL 的传染性,强制性,使之与众不同。不能理解这个的话,我们可以不讨论这个问题。

    @azh7138m 能力问题上,谁有能力当然谁就可以改。但我指的意思是,GPL 传染开源的方式,使得持续贡献是一件要求很高的事情,不利于创新。
        4
    dalabenba   56 天前 via Android   ♥ 5
    要表达观点的话还是直接把你的证据和思路写清楚,不要用这么多反问句。
    因为你的反问句并不能支持你的观点,这种写法很像阴谋论。对一个东西提出问题不等于这个东西就有问题
    还有,独立性的最大威胁???这个也是标题党了
        5
    frylkrttj   56 天前
    帖主这是要闹事。还是说说你看上了哪个 GPL 项目,不好下手吧。
        6
    frylkrttj   56 天前
    我一看帖主就是想抄个 GPL 项目,然后不想搞 GPL 。
        7
    no1xsyzy   56 天前
    没明白,请用汉语
        8
    jedihy   56 天前 via iPhone
    我能理解 lz。GPL 对于很多公司来说跟闭源没什么区别。想看一下代码又得走公司法务。
        9
    BXIA   56 天前 via iPhone
    第一次见到把看不懂代码说得这么清新脱俗的
        10
    noli   56 天前 via iPhone
    @BXIA 几百万行级别的项目,我想没有个人能有信心全盘掌控,甚至小团队也搞不定。只有大公司才玩得转。

    我想你高估了自己的阅历,所以你认为我在说看不懂代码。

    对,我说的就是 GPL 协议的经典,Linux 内核代码。
        11
    Lax   55 天前
    "几百万行级别的项目,我想没有个人能有信心全盘掌控,甚至小团队也搞不定。只有大公司才玩得转。"
    --- 干掉 GPL 协议能解决什么问题呢,同样的功能代码行数会下降,或者同样的小团队现在就能搞得定啦?
        12
    noli   55 天前
    @Lax

    如果不是 GPL 的话,小团队可以做小修改小贡献不开源,然后利用这些小修改小贡献带来的商业价值,支撑更多的修改。GPL 从一开始就阻止了他们这样做的可能性。
        13
    vuuv   55 天前 via Android
    开源协议并非 GPL 一种。
    而同一份代码可以拥有多种授权,如果计划商用,可以联系持有者获取其他版本的授权(例如 MIT,Apache )。
    如果使用了 GPL 版本,却不想继续开源,那么抱歉了。持有者选择 GPL 就是为了治哪些只索取不奉献的。
        14
    noli   54 天前 via iPhone
    @vuuv GPL 的价值观中有害的假设之一就是,不开源就不是对人类有所贡献。
        15
    kahlkn   54 天前
    @noli 对,不开源就不是对人类有所贡献。

    1. 反正我学习编程的时候,不管什么乱七八糟的,都会上 gayhub 去看人家的源码,优质的劣质的,抱着学习的心态,或多或少都能有所收益。就像你说的 几百万行级别的项目 ,为什么 个人 会去想要整个都看懂 全盘掌控呢?我看过太多项目的源码呢,但是都是抱着需求去看别人类似的设计(毕竟模块化,分层,抽象等,随便拿出一块稍微完整的看看,就能有好多收益,对于我这种菜鸟)。

    2. “小团队可以做小修改小贡献不开源,然后利用这些小修改小贡献带来的商业价值”。开源和商业价值不冲突。举个例子吧。假如小团队看中了一个项目的源码,他们小修改之后为他们自己带来了商业价值。但是假设那个项目没有开源呢? 1 他们得凭空从头造就轮子。2 假设他们了解到某家公司(组织)有类似的东西,所以他们找这家公司(组织)申请授权(因为商业用途,肯定是需要花钱的),然后进行小修改之后创造价值。 好,然后基于 2 的可能性,那么那个开源项目的证书可能是两个,一个是针对非商业用途所授权的 GPL 证书,一个是针对商业用途所授权的证书。 那么那家小公司可以使用商业授权的证书。 (并且这里开源的好处更多,因为 2 中他们了解到某家公司这块,也许这个是机密,不可能让别人了解到,但是如果是开源,比如你在 gayhub 上搜索,说不定就搜到想用的了,就不用麻烦的花很长时间去找谁做过,也不用从头造轮子)。所以 GPL 等授权远比你想象的要成熟。

    3. 再举个例子吧,比如安卓系统的源码。 应该是 GPL 的。我没有深入了解,因为我了解的是做第三方 ROM 的一般都是要依赖于厂商开源的,然后第三方 ROM 才可以去适配的。 那么就比如 miui 吧,在安卓系统上做了太多魔改了,然后比如 miui 的广告造就的收益,不也是入了 小米 的手嘛。而小米要做的仅仅是将系统开源(我不确定开源多少等等的),小米一般也是在新机发布之后 半年,甚至更久才将其开源。 小米一开源,第三方 ROM 就可以开始适配了。比如 魔趣、LineageOS 等,对这个机型进行适配,然后发布相应的刷机包。然后我就会可能去刷机。

    恕我认知有限,以上仅是我愚见,如有问题,请举例指出。
        16
    kahlkn   54 天前
    我们实际上真的能够定制 Linux 内核吗?有多少公司或者团队实际上能做得到?
    我们实际上可以自由地往内核里面添加想要的功能吗?谁可以做到?


    定制 Linux 内核 真的很难嘛? 可以自由地往内核里面添加想要的功能,对,可以自由的添加。

    1. 如果 定制 Linux 内核 真的很难,那么抱歉,现在的世界不会那么丰富多彩。夸张的讲,正是 linux 撑起了互联网的时代。比如交换机、商用路由器、家用路由器、互联网电视、安卓手机、智能家居(就那些能够联网的智能家居)等很多很多东西,都是基于 linux 内核进行定制的。

    2.就比如路由器吧,首先肯定有 cpu,内存,可写入存储、wifi 天线、电源适配器等组成。光光有硬件肯定是不够滴,那么怎么选用系统呢? 用 window arm ? 抱歉拖不起。 用 unix ? unix 是针对于大型机和家用机,对于微型机应该是不行的(这块不是非常了解),而且 unix 需要授权。那么就只能使用 linux 了。系统选定了,但是有可能选用的硬件不是那么现有型号的(就那种魔改硬件,没有采用标准协议的硬件),那么抱歉,Linux 内核可能驱动不起来。那么这个厂商就只能定制 linux 内核,增加功能使其能够驱动起来。 硬件能够驱动了之后,那么比如路由器的管理界面,需要一个 http 服务,当然可能还有一些其他的功能。功能搞定之后,可以再筛减一些没用的功能,然后可以打成一个路由器的系统包。

    所以定制 Linux 内核真的很难嘛? 可能只要 1 ~ 2 个熟悉 这块的(我不是很了解,就是 C/C++ 程序员,并且阅读过 linux 内核源码(不需要全部),然后看过 linux 内核解析这样的书的人)就可以了,就可以对内核进行魔改。当然上述的驱动非标准协议的硬件这个,可能需要那种单片机方面的人才吧,我猜的。但是很抱歉,这样的人才应该都可以招到,甚至你愿意也可以自学。

    恕我认知有限,以上仅是我愚见,如有问题,请举例指出。
        17
    msg7086   54 天前
    > 完全 GPL 的 Linux 内核,除了真的是开源的之外,现在真的对我们来说是自由软件吗?
    > 我们实际上真的能够定制 Linux 内核吗?有多少公司或者团队实际上能做得到?
    > 我们实际上可以自由地往内核里面添加想要的功能吗?谁可以做到?

    我们三流大学本科操作系统课程大作业,为当前的 Linux 内核编写一个驱动程序。
    做不到?老师:哦,课程不及格,重修去吧您。

    无知不是指责别人的依据,而是督促你进步的动力。
        18
    msg7086   54 天前
    为了证明我上述的论点,特引用我校现在的 OS II 课程作业内容如下:

    http://web.engr.oregonstate.edu/cgi-bin/cgiwrap/dmcgrath/classes/17F/cs444/index.cgi?hw=3

    CS444 Students: Encrypted Block Device

    Write a RAM Disk device driver for the Linux Kernel which allocates a chunk of memory and presents it as a block device.

    Using the Linux Kernel's Crypto API, add encryption to your block device such that your device driver encrypts and decrypts data when it is written and read. You will need to look at examples in the kernel for how to do this.

    调用内核中的 Crypto API,编写一个 Linux 4.15 的内核驱动程序,生成一个 RAM Disk,并实现即时加密与解密。


    另外,「 GPL 的价值观中有害的假设之一就是,不开源就不是对人类有所贡献。」

    GPL 价值观的假设是,不开源就不是对人类有「足够多」的贡献。
    开源的约束是相互的,你要求别人把实现的东西开源给你看,而你不愿意把自己实现的东西开源给别人看,除了双标我还能说什么?

    孔子曰,己所不欲勿施于人。我们把整个事情反过来看,楼主你公司、团队,花了几十年的时间做了一个震惊世界的软件,别人拿去以后改改,一边催着你更新,一边把自己修正的补丁藏着掖着拿来卖钱,楼主你会对这样的情况非常开心吗?

    你觉得 GPL 不好,那还不简单,就当做 GPL 的软件根本就不存在于世界上就行了。反正呢,按照你的说法,软件不需要强制开源,那么今天 Linux 就是个闭源的产品,你一样拿不到源代码。那你就当它是闭源的就行了。
        19
    noli   54 天前
    @kahlkn @msg7086

    1. 我在使用 mac OS, 还有 Windows。我想没人能否认 Apple 和 Microsoft 对人类贡献良多。
    GPL 只是特别地标榜无偿贡献。

    2. 定制 Linux 是不是特别地难,对很多普通程序员来说很难。无论你如何攻击我水平怎么样,也是改变不了这个事实,而且只会变得越来越难。
        20
    noli   54 天前
    @kahlkn @msg7086

    更重要的是,GPL 的 Linux 当时到底从非 GPL 的 Minix 和非 GPL 的 BSD 里面取得了多少代码,
    你们两位似乎又选择性地忽略了,这本来就是非 GPL 对开源最大的贡献之一。

    而如今即使你们两位很天才,能够白手起家从头写一个类 Linux 内核,也直接面临的是,与大公司还有众多 GPL 神教信徒的直接竞争。

    当然你可以说,我不在乎,我没想过从头开始,没想过和 Linux 竞争,没想过闭源……

    但这不能否认 GPL 妨碍了这世界上其他地方其他和你们一样天才,但抱负不一样的人,改变开源世界。
        21
    noli   54 天前
    @kahlkn @msg7086

    然后还必须接受 GPL 信徒成王败寇逻辑下的蔑视和攻击。

    果然 GPL 才是自由软件世界最大的威胁。
        22
    noli   54 天前
    @msg7086

    如果不希望别人拿去改,那为什么开源?
    如果希望开源,但不希望别人用修改后的产品威胁自己的商业利益,那为什么不选择商业授权?

    众多开源协议都能提供免责条款,似乎都被你无视了。

    我觉得,假如我是 非 GPL 开源的,但我的授权协议与 GPL 冲突,被 GPL 修改了以后我自己反而不能再用了,
    你绝不觉得这样的开源更恶心?
        23
    xuxueli   54 天前 via Android
    GPL 的问题由来已久,这里有一篇分析比较完善的文章。
    《为什么 GPL 是更好的开源许可证?》
    http://www.ruanyifeng.com/blog/2010/02/why_gpl_is_a_better_choice.html
        24
    andyhuzhill   54 天前
    GPL 的 Linux 从 MIT 协议和 BSD 协议的项目中吸取代码, 并没有什么问题阿,本来这些行为不就是 BSD MIT 所允许的么?你使用了 BSD MIT 的代码 甚至可以不用开源的,那么我现在只不过是在原本 BSD MIT 的条件下附加了你所作的修改也必须开源的条件而已,这又有什么问题。

    使用任何别人提供的代码,就要遵守对方的授权协议,不管这个协议是商业的 还是开源的。如果你不喜欢 GPL, 大可以完全不用 GPL 协议的代码, FreeBSD 和苹果现在不就是这么做的么,不喜欢 GPL 协议的 GCC, 然后自己开发了 BSD 协议的 Clang。

    还有 GPL 并不是 “不希望别人拿去改" 而且希望你所做的修改,其他人也能同样的获得。
        25
    edsheeran   53 天前 via iPhone
    自从来了 v 站,中文我都看不懂了
        26
    pkoukk   53 天前
    我同意 GPL 是开源协议中非常不友善的一种,但是楼主你主贴里的内容并不是只有 GPL 才有的问题,换个角度来说,你说的那些根本不是问题
        27
    noli   53 天前
    @xuxueli MySQL 已经死得差不多了,各种兼容 MySQL 的替代品层出不穷,正好验证了我的说发—— GPL 对创新极不友好。,而阮一峰同志拿 MySQL 作为例子来讲,真是舔 GPL 舔得太早了,毫无鼓气,毫无洞察力。

    @andyhuzhill 解决一下我 #20 层里说的,如果我先以 GPL 友好的方式开源,GPL 改完之后,不能再以非 GPL 友好的方式开源的问题。简称 Copyleft 的问题。

    @pkoukk 那是因为我(故意)说得不够清楚,你也没看懂。没关系,本来就不是给没有悟性的人看的,也不是给那些不能自己思考问题的人看的。像你这种没有提出任何独立观点的回复,我就回你这么一次吧。
        28
    noli   53 天前
    @pkoukk

    感觉上一条回复语气过于不友善,我还是补充一下吧。

    如果大家(假设程序员)都把自己当作开源世界的一分子,以这个身份来思考问题,那确实 GPL 是救星。
    就像大家都把自己当作社会主义新中国的一员,毛主席就是大救星,这是无法质疑的。

    但是想想其实你自己离开源的花花世界距离有多远,好好思考作为一个创新者(如果能有创新者的思维方式的话),面对 GPL 竞品的处境。

    如果你要做的产品没有 GPL 对手那就算了,如果有,例如像 MySQL,Linux,这样的,大公司们如果愿意投入人力物力,GPL 的方式开源跟进你所做的微小改善,那你很大可能只有举手投降的机会。情形就好像前些年,腾讯人力狂抄别人的创新的做法。而且或许,其他人也还会像你们一样,为 GPL 代码库增长而叫好,甚至反咬一口说你抄袭。

    这就是我说的,GPL 对自由软件的威胁,从创新的源头上扼杀潜在竞争对手。
        29
    slwl123   53 天前
    感觉 语文白学了啊
    问题 1 什么是 “自由软件” ps 个人理解 开源的 每个人都能拿去修改拿去用 不知道对不对
    问题 2 把开源的修改后闭源 别人找你要需要代价 还算是自由软件吗
        30
    noli   53 天前
    @slwl123

    1. 根据 FSF 自己的定义,开源不是自由软件的必要条件——自由软件不一定开源。

    V2EX 上有很多优秀的软件作者,他们会根据用户的意见改进功能,也允许用户自由分发。
    你觉得这些作者是不是提供了自由软件?

    2. 把开源的修改后闭源 别人找你要需要代价 还算是自由软件吗?

    这要看别人找我要软件是用来干嘛,如果承诺只用于学习用途,那我给源代码了,但禁止用于商业用途的分发或者再次分发。
    这算不算自由软件,得由你自己判断。

    你要说这就不是自由软件,那你也给个定义呗。


    问题的关键在于,GPL 竞品的存在,扫除了其他一切自由软件的可能性,不管作者愿不愿意给你源代码,不管你愿不愿意付费。
    然后 GPL 自身的产品,品质也越来越差。

    我说的就是 GCC,MySQL, 等等。
        31
    slwl123   53 天前
    @noli #30 wiki 查了下 根据自由软件基金会对其的定义,是一类可以不受限制地自由使用、复制、研究、修改和分发的
    明显禁止商用就不算了
    那么修改后闭源禁止商用 也是个威胁
        32
    noli   53 天前
    @slwl123

    你愿意采用了一个更加严格的自由软件定义,为的就是让 GPL 顺利干掉所有你可能用到的非自由软件,我对此感到遗憾。

    这情形比较类似于,吃饭为什么要钱,饭堂不是有吗?
        33
    kahlkn   52 天前
    @noli 只想说 开源 不一定要去改。就比如 我看到 这个设计思路很好。然后我根据这个思路写了一套自己的,那么是不是也涉及到抄袭代码呢? 就我自己来说,开源不一定要有别人来修改要有别人来看,只想把自己的设计留下来做备忘,万一帮助到别人了更好。 而 GPL 很简单,我不想别人拿了我的设计,改了,做商业做啥呢(做商业啥的不影响),却不把他修改的开源出来让大家学习(影响的是不开源)。

    GPL 不禁止商业,但是禁止不开放源码。 我怎么感觉你们都偏向了 GPL 和商业呢! 一个 GPL 的软件,没有特殊条款,应该是可以商业的,而商业可能会有二次修改,这二次修改必须开源。 就相当于你用了我的轮子去谋取利益,我不介意,但是请把你二次修改的代码开源(我觉得这个只有极度热爱代码的人才会想到,因为我相信最初的目的绝对是为了了解对方这样修改的好处等,以更好地优化产品)。

    我居然看到了你吐槽 GCC MYSQL 品质差。 行吧,最少我了解的 GCC 应该是 编译器 里面撑起一片天的玩意。MYSQL 不知道多少公司在用。 就算在差,别人也愿意用。 当然也许未来会在这个基础上优化出 更好的。

    就此,不要再扯了,谁也说服不了谁,只要热爱着代码就够了。我喜欢 GPL 仅此而已,如果有人用我的东西,我不介意商用,但是让我心痒痒的是他们对这个东西二次开发的思路。
        34
    noli   52 天前
    @kahlkn

    很明显,我没有可能说服你,反之亦然。
    但我孜孜不倦与你讨论的,并不在于 GPL 是怎样设计的,或者说用 GPL 的人是怎样想的。
    而是希望让你想到的是,使用 GPL 会有怎样的反直觉的后果。

    这个反直觉的地方就是,你以为 GPL 保障了开源者的利益,实际上可能伤害了更多人的利益。
    就你的阐述来看,你的考虑是开源出来让大家学习,你的直觉是我可以参考开源的做一套相似的……

    但是实际上的情况是,容易实现的、或者规模不大的软件,不需要 GPL 保护,因为别人完全可以重起炉灶。
    不容易实现的,规模很大的软件,GPL 只会成为大公司用于打压小规模创新的工具,原因我已经解释过了。 #26

    GCC 和 MySQL 的品质当然差。

    GCC 和 clang 比 bug 多,生成的代码慢;
    MySQL 和 PostgreSQL 比,也是 bug 多,功能和性能与商业数据库的差距,比起 PostgreSQL 都相差太远。

    更重要的是,在社区对比来看,为 clang 贡献代码的远比 GCC 活跃;
    PostgreSQL 的应用范围也远比 MySQL 广。

    就算你不认可我举的例子,你也很容易可以发现 GPL 的出发点 —— 不想别人不开源,这本身就是一种对自由的限制。

    在你的软件生涯里面,你使用别人的成果的时间,远多于你的成果被他人所使用的时间。
    强制别人开源,最终只会使得每个人,都只能基于不被强制开源的协议来写代码。
    因为 GPL 不可能养他们吃饭。

    我们都热爱代码,只不过我更热爱选择丰富自由的代码,而不是 GPL 暴政。
        35
    dorothyREN   51 天前
    我们实际上真的能够定制 Linux 内核吗?有多少公司或者团队实际上能做得到?
    我们实际上可以自由地往内核里面添加想要的功能吗?谁可以做到?
    ------------
    人家给了你机会,你自己不中用还得怪人家喽
        36
    kahlkn   51 天前
    @noli 开源( GPL )和 吃饭并不冲突。 即使使用了别人闭源组件,你开源的只是你自己写的调用别人闭源组件的逻辑。然后你要求别人用你写的调用别人闭源组件逻辑时,需要开源他对这个调用逻辑的修改(请注意这个,他对这个逻辑修改之后,可以再打包开源,然后自己的商业东西不开源来调用这个打包的被迫开源的东西)。 至于使用别人的成果,对的我经常使用别人二进制的成果,如果你想要学习别人的代码,抱歉,你只能反编译和反混淆。 去追求你的不开源把。到最后你会发现无码可阅,是无私分享的精神促进了开源。 强制开源就是为了保证分享人的权益,你分享了自己的代码,你要二次修改,你就得再分享出来,但并没有保证分享人能有经济收益。
        37
    noli   51 天前 via iPhone
    @dorothyREN

    瞧你说的,马云都把成功经验无偿分享给大家了,你怎么没马云的万分之一强呢?不中用啊。
        38
    noli   51 天前 via iPhone
    @kahlkn 说来说去你的目的就只为了学习。说得好像别的开源代码就不能学习似的,也说得我好像不用 GPL 就是追求闭源似的。只能说你在学校的环境真是太单纯,从来没想过利益之争在开源世界也是生死大事。

    顺带你还鄙视了比 GPL 社区大得多的开源社区。

    竖子不足与谋。
        39
    noli   50 天前
    重温了一下几层楼里面的回复,发现 GPL 主义者都有些精神分裂:

    1. 一方面强调 GPL 强制开源是好事,但另一方面却从不考虑这软件依然有不开源的可能性。
    既然不开源是可能的,为什么还指望强制别人开源是有效果的?

    如果别人没有开源的意愿,为什么相信 GPL 能让人愿意开源?
    这几乎就是一种占便宜的心态,巴不得所有代码都沾上了 GPL 的极端主义。

    2. GPL 的很多软件,都需要募集捐款来专门聘请人员维护开发,
    但在这些 GPL 主义者对商业开发却嗤之以鼻,认为不开源就不足以成为贡献……

    怎么说呢,也不是不可以高姿态,就是比较不谙世事的感觉吧。

    3. 对其他开源方式不屑一顾,不传染开源就都有可能被闭源……

    感觉就像说,如果人人都搞基,人类是不是要灭绝,大概是这个意思吧。
        40
    dalieba   49 天前 via Android
    答案很简单,你行就上
        41
    Hanada   48 天前 via Android
    比起 GPL,我倒发现某些标榜开源,用 GPL 证书的程序,把代码都加密起来了,这算个锤子开源,代码加密后开源有什么意义么。(还加上了修改判断,一修改就拒绝运行)。到底是想分享代码还是做做样子。
        42
    BruceAuyeung   42 天前 via Android
    想用别人的劳动成果,然后还不想做贡献,题主是吧?
        43
    noli   42 天前 via iPhone
    @BruceAuyeung

    讲讲道理好不好,GPL 的代码也不能给 BSD 贡献啊。各种 Unix 也没指望过 Linux 给他们贡献啊,你们这群虚伪的家伙。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1959 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 01:12 · PVG 09:12 · LAX 18:12 · JFK 21:12
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1