Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:darix:apps
discourse
discourse.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File discourse.spec of Package discourse
# # spec file for package # # Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %bcond_with do_javascript_at_build Name: discourse Version: 0 Release: 0 # %define vhosts_dir /srv/www/vhosts/ %define app_dir %{vhosts_dir}/%{name}/ %define home_dir %{app_dir} License: GPL-2.0+ Summary: A platform for community discussion. Free, open, simple Url: http://www.discourse.org/ Group: Productivity/Networking/Web/Frontends Source: _service Source1: %{name}-rpmlintrc Source2: %{name}-update Source3: %{name}-puma.service Source4: %{name}-sidekiq.service Source5: %{name}.target Source6: dump-version-info.rb Source7: discourse-update.service Source9: series Source10: _servicedata Source11: vendor.tar.xz Patch: discourse.fix.deps.patch Patch1: discourse.fix-puma-config.patch Patch2: discourse.fix-nginx-config.patch Patch3: es6.patch Patch4: convert-git-deps-to-path.patch %if %{with use_yarn_cache} Patch5: yarn-use-local-cache.patch %else Patch5: yarn-use-no-production.patch %endif BuildArch: noarch # BuildRequires: git-core Requires: git-core BuildRequires: strace BuildRequires: postgresql-contrib BuildRequires: postgresql-server BuildRequires: rsync BuildRequires: fdupes BuildRequires: ruby-common-rails >= 2.6 # %define nodejs_min_version 18 BuildRequires: timezone Requires: timezone BuildRequires: brotli Requires: brotli BuildRequires: npm%{nodejs_min_version} BuildRequires: yarn %requires_eq nodejs%{nodejs_min_version} %requires_eq npm%{nodejs_min_version} %requires_eq yarn # BuildRequires: pkgconfig(systemd) %{?systemd_requires} Requires: ImageMagick Requires: pngquant Requires: oxipng Requires: jhead Requires: jpegoptim Requires: patch Provides: group(discourse) Provides: user(discourse) # %define rb_build_versions %{discourse_rb_build_versions} %define rb_build_abi %{discourse_rb_build_abi} %define rb_suffix %{discourse_rb_suffix} # Provides: rubygem(%{rb_build_abi}:mail) = 2.8.0.edge # for a better rails console Recommends: %{rubygem php-serialize} BuildRequires: %{rubygem pry-rails} # generated!!! # # Force the rubygem-bundler package so that our automation with BUNDLER_REPLACE works BuildRequires: %{rb_suffix}-rubygem-gem2rpm BuildRequires: %{rb_suffix}-rubygem-bundler >= 2.4.1 %requires_eq %{rb_suffix}-rubygem-bundler # helper for scheduler BuildRequires: %{rubygem redis-namespace >= 1.11.0} BuildRequires: %{rubygem json_schemer >= 1.0.3} BuildRequires: %{rubygem oj >= 3.16.1} # /helper for scheduler # %define rails_version 7.0.8.4 BuildRequires: %{rubygem bootsnap} BuildRequires: %{rubygem actionmailer = %{rails_version}} BuildRequires: %{rubygem actionpack = %{rails_version}} BuildRequires: %{rubygem actionview = %{rails_version}} BuildRequires: %{rubygem activemodel = %{rails_version}} BuildRequires: %{rubygem activerecord = %{rails_version}} BuildRequires: %{rubygem activesupport = %{rails_version}} BuildRequires: %{rubygem railties = %{rails_version}} BuildRequires: %{rubygem sprockets-rails} BuildRequires: %{rubygem json >= 2.7.1} BuildRequires: %{rubygem actionview_precompiler >= 0.4.0} BuildRequires: %{rubygem discourse-seed-fu} BuildRequires: %{rubygem mail} BuildRequires: %{rubygem mini_mime} BuildRequires: %{rubygem mini_suffix} BuildRequires: %{rubygem redis} BuildRequires: %{rubygem redis-namespace} BuildRequires: %{rubygem active_model_serializers:0.8 >= 0.8.3} BuildRequires: %{rubygem http_accept_language} BuildRequires: %{rubygem discourse-fonts} BuildRequires: %{rubygem message_bus} BuildRequires: %{rubygem rails_multisite} BuildRequires: %{rubygem fastimage} BuildRequires: %{rubygem aws-sdk-s3} BuildRequires: %{rubygem aws-sdk-sns} BuildRequires: %{rubygem excon} BuildRequires: %{rubygem unf} BuildRequires: %{rubygem email_reply_trimmer} BuildRequires: %{rubygem image_optim} BuildRequires: %{rubygem multi_json} BuildRequires: %{rubygem mustache} BuildRequires: %{rubygem nokogiri} BuildRequires: %{rubygem loofah} BuildRequires: %{rubygem css_parser} BuildRequires: %{rubygem omniauth} BuildRequires: %{rubygem omniauth-facebook} BuildRequires: %{rubygem omniauth-twitter} BuildRequires: %{rubygem omniauth-github} BuildRequires: %{rubygem omniauth-oauth2} BuildRequires: %{rubygem omniauth-google-oauth2} BuildRequires: %{rubygem oj} BuildRequires: %{rubygem pg} BuildRequires: %{rubygem mini_sql} BuildRequires: %{rubygem pry-rails} BuildRequires: %{rubygem pry-byebug} BuildRequires: %{rubygem rtlcss} BuildRequires: %{rubygem rake} BuildRequires: %{rubygem thor} BuildRequires: %{rubygem diffy} BuildRequires: %{rubygem rinku} BuildRequires: %{rubygem sidekiq} BuildRequires: %{rubygem mini_scheduler} BuildRequires: %{rubygem execjs} BuildRequires: %{rubygem mini_racer} BuildRequires: %{rubygem highline} BuildRequires: %{rubygem rack} BuildRequires: %{rubygem rack-protection} BuildRequires: %{rubygem cbor} BuildRequires: %{rubygem cose} BuildRequires: %{rubygem addressable} BuildRequires: %{rubygem json_schemer} BuildRequires: %{rubygem net-smtp} BuildRequires: %{rubygem net-imap} BuildRequires: %{rubygem net-pop} BuildRequires: %{rubygem digest} BuildRequires: %{rubygem uglifier} BuildRequires: %{rubygem fast_blank} BuildRequires: %{rubygem lru_redux} BuildRequires: %{rubygem htmlentities} BuildRequires: %{rubygem rack-mini-profiler} BuildRequires: %{rubygem unicorn} BuildRequires: %{rubygem puma} BuildRequires: %{rubygem rbtrace} BuildRequires: %{rubygem ruby-readability} BuildRequires: %{rubygem rss} BuildRequires: %{rubygem stackprof} BuildRequires: %{rubygem memory_profiler} BuildRequires: %{rubygem cppjieba_rb} BuildRequires: %{rubygem lograge} BuildRequires: %{rubygem logstash-event} BuildRequires: %{rubygem logstash-logger} BuildRequires: %{rubygem logster} BuildRequires: %{rubygem sassc-embedded} BuildRequires: %{rubygem rotp} BuildRequires: %{rubygem rqrcode} BuildRequires: %{rubygem rubyzip} BuildRequires: %{rubygem sshkey} BuildRequires: %{rubygem rchardet} BuildRequires: %{rubygem lz4-ruby} BuildRequires: %{rubygem sanitize} BuildRequires: %{rubygem web-push} BuildRequires: %{rubygem colored2} BuildRequires: %{rubygem maxminddb} BuildRequires: %{rubygem rails_failover} BuildRequires: %{rubygem faraday} BuildRequires: %{rubygem faraday-retry} BuildRequires: %{rubygem net-http} BuildRequires: %{rubygem cgi >= 0.3.6} BuildRequires: %{rubygem tzinfo-data} BuildRequires: %{rubygem csv >= 3.3.0} BuildRequires: %{rubygem drb >= 2.2.1} BuildRequires: %{rubygem mutex_m >= 0.2.0} BuildRequires: %{rubygem rtlcss = 0.2.1} # Importer deps: BuildRequires: %{rubygem sqlite3:1 >= 1.3.13} BuildRequires: %{rubygem redcarpet} # helper for scheduler BuildRequires: %{rubygem rexml >= 3.2.6} BuildRequires: %{rubygem openssl >= 3.2.0} BuildRequires: %{rubygem racc >= 1.7.1} BuildRequires: %{rubygem rake >= 13.1.0} BuildRequires: %{rubygem rack:2.2 >= 2.2.5} BuildRequires: %{rubygem rack-test >= 2.0.2} BuildRequires: %{rubygem rubyzip >= 2.3.2} BuildRequires: %{rubygem bigdecimal >= 3.1.6} BuildRequires: %{rubygem date >= 3.3.4} BuildRequires: %{rubygem sanitize >= 6.1} BuildRequires: %{rubygem jwt >= 2.6.0} BuildRequires: %{rubygem sprockets:3 = 3.7.2} BuildRequires: %{rubygem mail >= 2.8.1} BuildRequires: %{rubygem json >= 2.7.0} BuildRequires: %{rubygem sidekiq:6.5 >= 6.5.8} BuildRequires: %{rubygem oauth >= 1.1} BuildRequires: %{rubygem digest >= 3.1.1} BuildRequires: %{rubygem minitest >= 5.17.0} BuildRequires: %{rubygem net-http >= 0.4.1} BuildRequires: %{rubygem net-imap >= 0.4} BuildRequires: %{rubygem net-smtp >= 0.4} BuildRequires: %{rubygem net-pop >= 0.1.2} BuildRequires: %{rubygem net-protocol >= 0.2.2} BuildRequires: %{rubygem timeout >= 0.4} BuildRequires: %{rubygem uri >= 0.12.2} BuildRequires: %{rubygem omniauth:1} BuildRequires: %{rubygem mini_mime >= 1.1} BuildRequires: %{rubygem faraday >= 2} BuildRequires: %{rubygem faraday-retry >= 2} BuildRequires: %{rubygem omniauth-oauth2:1.7} BuildRequires: %{rubygem oauth2 >= 2} BuildRequires: %{rubygem puma >= 6.4.2} BuildRequires: %{rubygem omniauth-google-oauth2:0.8} BuildRequires: %{rubygem omniauth-github:1} BuildRequires: %{rubygem rotp >= 6.3} BuildRequires: %{rubygem rqrcode >= 2} BuildRequires: %{rubygem lograge >= 0.14} BuildRequires: %{rubygem rss >= 0.3} BuildRequires: %{rubygem cgi >= 0.4} BuildRequires: %{rubygem base64 >= 0.2} # # /generated %description Discourse is the 100% open source discussion platform built for the next decade of the Internet. It works as: - a mailing list - a discussion forum - a long-form chat room %prep mv %{_sourcedir}/%{name}-%{version} %{_builddir}/%{name}-%{version} %setup -q -D -T 0 -a 11 %rails_save_gemfile %autopatch -p1 #generate_buildrequires #{_bindir}/bundler-dumpdeps rm -rv vendor/gems/rails-sprocket-3.x/test %build # 1.9.0.beta6~git14.d29fc781fb -> v1.9.0.beta6-14-gd29fc781fb ruby.%{rb_suffix} %{S:6} %{version} %rails_fix_ruby_shebang bin/* qa/bin/qa script/* script/*/* %rails_regen_gemfile_lock %rails_fix_ruby_suffix %rails_write_appinfo pushd $RPM_SOURCE_DIR perl -p -i -e "s|BUNDLER_REPLACE|$(rpm -ql %{rb_suffix}-rubygem-bundler | grep 'bin.*bundler.*%{rb_suffix}-')|g" discourse-puma.service discourse-sidekiq.service discourse-update popd perl -p -i -e 's|/usr/bin/env rake|/usr/bin/rake.%{rb_suffix}|g' Rakefile #RAILS_ENV="production" \ #DATABASE_URL=postgresql://none:none@127.0.0.1/none \ #./bin/bundle exec ./bin/rake assets:clean assets:precompile cp -v config/database.yml{,.example} mkdir -p tmp/{sockets,pids} public/uploads/ public/plugins/ public/backups/default/ app/assets/javascripts/plugins/ log/ chmod -R u=rwX,g=rX,o= . chmod -R o+rX public/ config.ru chmod -R go=X public/backups/ chmod go+X . chmod -R go+X tmp/ chmod go+X plugins/ plugins/*/ chmod -R go+rX plugins/*/public/ chmod -R u=rwX,go= log/ if [[ -e .gitattributes ]] ; then echo "Error: .gitattributes still exists" rm -rv .gitattributes fi #find -name \*.swp -print -delete find -type f \( -name .gitkeep -o -name .gitignore \) -print -delete chmod a-x \ bin/docker/README.md \ public/javascripts/pikaday/1.8.2/pikaday.js rm -rv tmp/cache/bootsnap* # not sure why the symlink targets are missing but we will find out for link in $(find -path "*/node_modules/.bin/*" -type l) ; do target="$(readlink $link)" ; if [ ! -e "${target}" ] ; then rm -v "${link}" ; fi done %if %{with do_javascript_at_build} yarn install --production --offline --cache-folder vendor/cache/yarn/ rm -rvf vendor/cache/yarn/ %endif %install install -D -d -m 0751 %{buildroot}%{app_dir}/ rsync -a $PWD/ %{buildroot}%{app_dir}/ install -D -m 0755 %{S:2} %{buildroot}%{_sbindir}/%{name}-update install -D -m 0644 %{S:3} %{buildroot}%{_unitdir}/%{name}-puma.service install -D -m 0644 %{S:4} %{buildroot}%{_unitdir}/%{name}-sidekiq.service install -D -m 0644 %{S:7} %{buildroot}%{_unitdir}/%{name}-update.service install -D -m 0644 %{S:5} %{buildroot}%{_unitdir}/%{name}.target grep -h -r 'CREATE EXT' db/migrate/* | sed -e 's|.*"\(.*\)".*|\1;|g' | tee discourse.setup.extensions.sql for i in puma sidekiq update ; do ln -s /sbin/service %{buildroot}%{_sbindir}/rc%{name}-$i done #%%fdupes -s %%{buildroot}%%{app_dir}/ %pre /usr/sbin/groupadd -r %{name} &>/dev/null || : /usr/sbin/useradd -g %{name} -s /bin/false -r -c "Discourse" -d %{home_dir} %{name} &>/dev/null || : %service_add_pre %{name}-update.service %{name}-puma.service %{name}-sidekiq.service discourse.target %post %service_add_post %{name}-update.service %{name}-puma.service %{name}-sidekiq.service discourse.target %preun %service_del_preun %{name}-update.service %{name}-puma.service %{name}-sidekiq.service discourse.target %postun touch %{app_dir}/tmp/rebuild.txt %service_del_postun %{name}-update.service %{name}-puma.service %{name}-sidekiq.service discourse.target %files %defattr(-,root,root) %doc discourse.setup.extensions.sql %{_unitdir}/%{name}.target %{_unitdir}/%{name}-puma.service %{_unitdir}/%{name}-sidekiq.service %{_unitdir}/%{name}-update.service %{_sbindir}/%{name}-update %{_sbindir}/rc%{name}* %dir %{vhosts_dir} %defattr(-,root,%{name}) %dir %{app_dir}/ %dir %{app_dir}/app %dir %{app_dir}/app/assets %dir %{app_dir}/app/assets/javascripts %config(noreplace) %{app_dir}/config/ %{app_dir}/.appinfo.yml %{app_dir}/.devcontainer/ %{app_dir}/.vscode-sample/ %{app_dir}/app/assets/images %{app_dir}/app/assets/javascripts/*.js* %{app_dir}/app/assets/javascripts/admin/ %{app_dir}/app/assets/javascripts/bootstrap-json/ %{app_dir}/app/assets/javascripts/deprecation-silencer/ %{app_dir}/app/assets/javascripts/dialog-holder/ %{app_dir}/app/assets/javascripts/discourse-common/ %{app_dir}/app/assets/javascripts/discourse-hbr/ %{app_dir}/app/assets/javascripts/discourse-i18n/ %{app_dir}/app/assets/javascripts/discourse-markdown-it/ %{app_dir}/app/assets/javascripts/discourse-plugins/ %{app_dir}/app/assets/javascripts/discourse-widget-hbs/ %{app_dir}/app/assets/javascripts/discourse/ %{app_dir}/app/assets/javascripts/docs/ %{app_dir}/app/assets/javascripts/ember-addons/ %{app_dir}/app/assets/javascripts/ember-cli-progress-ci/ %{app_dir}/app/assets/javascripts/ember-production-deprecations/ %{app_dir}/app/assets/javascripts/float-kit/ %{app_dir}/app/assets/javascripts/locales/ %{app_dir}/app/assets/javascripts/patches/ %{app_dir}/app/assets/javascripts/pretty-text/ %{app_dir}/app/assets/javascripts/select-kit/ %{app_dir}/app/assets/javascripts/theme-transpiler/ %{app_dir}/app/assets/javascripts/truth-helpers/ %if %{with do_javascript_at_build} %{app_dir}/app/assets/javascripts/node_modules/ %endif %{app_dir}/app/assets/javascripts/yarn*.lock %{app_dir}/app/assets/javascripts/run-patch-package %{app_dir}/app/assets/javascripts/.licensee.json %{app_dir}/app/assets/stylesheets %{app_dir}/app/controllers %{app_dir}/app/helpers %{app_dir}/app/jobs %{app_dir}/app/mailers %{app_dir}/app/models %{app_dir}/app/serializers %{app_dir}/app/services %{app_dir}/app/views %{app_dir}/bin %{app_dir}/Brewfile %{app_dir}/config.ru %{app_dir}/CONTRIBUTING.md %{app_dir}/CODEOWNERS %{app_dir}/d %{app_dir}/db %{app_dir}/discourse.* %{app_dir}/docs %{app_dir}/.editorconfig %{app_dir}/.eslintignore %{app_dir}/.eslintrc.cjs %{app_dir}/.prettierrc.cjs %{app_dir}/.template-lintrc.cjs %{app_dir}/.git-blame-ignore-revs %{app_dir}/.github/ %{app_dir}/Gemfile %{app_dir}/Gemfile.upstream %{app_dir}/Gemfile*.lock %{app_dir}/Gemfile*.lock.upstream %{app_dir}/images %{app_dir}/jsconfig.json %{app_dir}/lefthook.yml %{app_dir}/.licensed.yml %{app_dir}/.licensee.json %{app_dir}/lib %{app_dir}/LICENSE.txt %{app_dir}/migrations/ %if %{with do_javascript_at_build} %{app_dir}/node_modules/ %endif %{app_dir}/package.json %{app_dir}/.prettierignore %{app_dir}/public/*.html %{app_dir}/public/*.json %{app_dir}/public/images/ %{app_dir}/public/javascripts/ #{app_dir}/public/ %{app_dir}/plugins %{app_dir}/Rakefile %{app_dir}/README.md %{app_dir}/.rspec %{app_dir}/.rspec_parallel %{app_dir}/.rubocop.yml %{app_dir}/.ruby-gemset.sample %{app_dir}/.ruby-version.sample %{app_dir}/.jsdoc %{app_dir}/documentation/ %{app_dir}/script %{app_dir}/spec %{app_dir}/.streerc %{app_dir}/test %{app_dir}/translator.yml %dir %{app_dir}/vendor %if %{with do_javascript_at_build} %{app_dir}/vendor/cache %endif %{app_dir}/vendor/data %{app_dir}/vendor/gems %{app_dir}/yarn.lock %{app_dir}/.npmrc %{app_dir}/COPYRIGHT.md %{app_dir}/app/assets/javascripts/.npmrc %defattr(-,%{name},%{name}) %{app_dir}/vendor/assets %{app_dir}/app/assets/javascripts/plugins/ %{app_dir}/public/plugins/ %{app_dir}/public/backups/ %{app_dir}/public/uploads/ %{app_dir}/tmp/ %{app_dir}/log/ %dir %{app_dir}/public %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor