From 3e2b8ac376793f078ddc52662ba22180c165d6cdca1b09b53708cb0d72127d3c Mon Sep 17 00:00:00 2001 From: Andrej Semen Date: Thu, 21 Jul 2016 13:39:03 +0000 Subject: [PATCH] Accepting request 412567 from home:asemen new package main fork of owncloud OBS-URL: https://build.opensuse.org/request/show/412567 OBS-URL: https://build.opensuse.org/package/show/server:php:applications/nextcloud?expand=0&rev=1 --- .gitattributes | 23 ++ .gitignore | 1 + README | 541 +++++++++++++++++++++++++++++++++++++++ README.SELinux | 26 ++ apache_secure_data | 17 ++ nextcloud-9.0.53.tar.bz2 | 3 + nextcloud.changes | 24 ++ nextcloud.spec | 214 ++++++++++++++++ robots.txt | 2 + 9 files changed, 851 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 README create mode 100644 README.SELinux create mode 100644 apache_secure_data create mode 100644 nextcloud-9.0.53.tar.bz2 create mode 100644 nextcloud.changes create mode 100644 nextcloud.spec create mode 100644 robots.txt diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/README b/README new file mode 100644 index 0000000..c859eaa --- /dev/null +++ b/README @@ -0,0 +1,541 @@ +nextcloud Overview and installation instructions +----------------------------------------------- + +Welcome to nextcloud, your self-hosted file sync and share solution. + +OwnCloud is open source file sync and share software for everyone from +individuals operating the free Community Edition, to large enterprises and +service providers operating nextcloud Enterprise Edition. nextcloud +provides a safe, secure and compliant file sync and share solution on +servers you control. + +With nextcloud you can share one or more folders on your PC, and sync +them with your nextcloud server. Place files in your local shared +directories, and those files are immediately synced to the server, and then +to other PCs via the desktop client. Not near a desktop client? No +problem, simply log in with the web client and manage your files there. The +Android and iOS mobile apps allow you to browse, download and upload photos +and videos. On Android, you may also create, download, edit and upload any +other files, with the correct software installed. + +Whether using a mobile device, a workstation, or a web client, nextcloud +provides the ability to put the right files in the right hands at the right +time on any device in one simple-to-use, secure, private and controlled +solution. After all, with nextcloud, it's Your Cloud, Your Data, Your Way. + + +The Various Elements of nextcloud +-------------------------------- +nextcloud comes in three different Editions, with desktop clients and mobile +apps available as add-ons. + +The three editions are: +- Community Edition: the free, unsupported, open source version of nextcloud. + This is the same server software that is included in Business and + Enterprise Edition, it is just provided unsupported under AGPL license. It + includes the server side application and the built in web client. +- Business Edition: the certified and supported nextcloud server provided + under AGPL license (support provided by nextcloud, Inc.), including the + desktop clients and intended as a starter pack for small businesses, or as + a PoC for large businesses or service providers. +- Enterprise Edition: the certified and supported nextcloud server provided + under AGPL or nextcloud license, including desktop clients and mobile apps, + available in increments up to an unlimited number of users, and intended + as an enterprise or service provider offering. + +While there are three different Editions of nextcloud, the nextcloud server is +open source, and is essentially the same in all three offerings. This +installation guide is designed for installation of the nextcloud server, +a part of all three nextcloud Editions. + +For more information on nextcloud Editions, please visit nextcloud.com/overview. + + +nextcloud is a Web Application +----------------------------- +nextcloud is a web based application that is intended to provide access to +files. As such, understand that once you take an nextcloud instance live, it +must be maintained as you would any other website or server. This means +keeping up with patches to the web server, PHP, your database, as well as +updates to nextcloud itself. Active monitoring of the application and logs +are recommended, SSL connections are a good idea for security reasons, and a +local server soft firewall is just smart - and in most cases part of the +default server setup. Be thorough with nextcloud and your web server, and you +will have the secure file, sync and share solution you are looking for for +many years to come. + + +Prerequisites +------------- +nextcloud requires a webserver, PHP5 and a database to operate. We support +Apache, though it is possible to run nextcloud on Microsoft's IIS on Windows +7 or Windows Server 2008 R2 via FastCGI. nextcloud recommends Apache and +PHP5, for performance and overhead reasons. For databases, we support +SQLite, MySQL, and PostgreSQL. See "Choosing the Database" for more +information on which database to choose. + + +Installation Scale +------------------ +nextcloud is simple to install with a little technical know-how, and +depending on your situation, can be installed in minutes. However, before +installing nextcloud, it is important to understand what it is. nextcloud is a +PHP based web application, so you also need to install PHP5 and Apache2. You +can install nextcloud on Linux, Windows and Mac servers, as well as in +virtual machine(s), where you install the application is entirely dependent +on the scale of your operations. + +nextcloud is highly flexible software, supporting small to massive +implementations. For small installations, you can install all of nextcloud on +an old desktop or workstation, on a single server, or inside a single +virtual machine. For mid-sized installations, you can separate the app and +database server to enhance security and improve scalability, and add a +second app server and MySQL server for redundancy. At the large end of the +installation spectrum, you may have a load balancer out front of many +nextcloud application servers, with a database cluster, and network attached +storage on the back end, enabling massive scalability and performance tuning +for your instance. + +For the purposes of this document, the assumption is made that a small to +mid sized installation is the desired outcome, either for personal use, or +as a demo, proof of concept, or pilot. + + +Choosing the Database +--------------------- +When you install nextcloud, first take a hard look at the scale of your +implementation. nextcloud can be installed with MySQL, PostgreSQL or SQLite. +Which you choose is dependent on your environment, the number of users, and +the scale of your implementation. SQLite is a lightweight, +zero-configuration, self contained database engine. The best parts of SQLite +are the ease with which one can implement and use SQLite, and the speed and +low overhead required for it to work. However, this is really designed for +small implementations of nextcloud. In general, it is best to keep the use of +SQLite to personal installations, or to PoC or pilot installations with no +more than 50 users. For these sorts of implementations, SQLite works great. +If you have security concerns, or just don't know which to choose, then we +recommend stepping up to MySQL, as the tradeoff in server overhead is +typically worth the added benefits of a heavier database engine. + +If you are installing nextcloud Business or Enterprise Edition, the database +choice is a matter of preference between MySQL and PostgreSQL. While we +recommend MySQL for the large install base, large ecosystem, and the +additional features, such as MySQL clusters, you can use either database. On +first run, nextcloud will configure the instance using your defined database +instance name, location, user name and password. For this to work, you must +first install and start a database, and configure a database user for +nextcloud. For the purposes of this install guide, we will use MySQL. + + +Installation +------------ +Enough of the background stuff, lets get started installing! + +Getting Started +--------------- +In this section, we will guide you to the links for the software you need to +install to get nextcloud operating. If you have an alternative or preferred +approach to finding and installing Apache, PHP and MySQL, you may use it. On +Linux, though, we highly recommend sticking to the package manager +installations, which will greatly simplify updates, upgrades and un-installs +in the future. + +To get started with your nextcloud installation, install the latest Apache +release (as of writing, the latest Apache release is 2.4.1): +Linux: through your package manager +Windows: download from http://httpd.apache.org/download.cgi + +Start the web server, and open a browser to localhost to be sure the web +server is installed and operating. + +When that is installed, download and install the latest version of PHP (as +of writing, the latest PHP release is 5.4.0): +- Linux: through your package manager. The PHP or nextcloud package + installation will handle these dependencies at the next step, but it is + wise to make sure that these packagesare installed before you load + nextcloud for the first time: + - mod_php + - php-mysql + - php-json + - php-gd + - php-mb_multibyte + - php-ctype + - php-zip +- Windows: download from http://php.net/downloads.php + Note: you will be selecting the FastCGI installation as well, for PHP + support. + +Note for Fedora 16 users: please check http://blogs.fsfe.org/samtuke/?p=333 +for information on getting php-zip installed! + +When that is installed, download and install the latest version of the MySQL +community server (as of writing, the latest MySQL release is 5.6): +- Linux: through your package manager. +- Windows: download from http://dev.mysql.com/downloads/ + +Mac Users: +If you are running a Mac, the easiest installation for this entire stack +(including the database) is to download the MAMP "one click solution for +setting up your personal web server". This can be found at +http://www.mamp.info/en/index.html . + +At this point, you have the necessary prerequisites installed. Now it is +time to configure the database. + + +Setting up the Database +----------------------- +As already mentioned, nextcloud will automatically create tables inside a +database at first run, but it needs to connect to a running instance of the +database. If you are using SQLite, this is not an issue, as SQLite is +essentially embedded in nextcloud. But, if you are using MySQL or PostgreSQL, +you must install and configure the instance, as well as an nextcloud user. + +Please refer to the latest documentation for your database. +http://dev.mysql.com/doc/#manual (5.6) +http://www.postgresql.org/docs/manuals/ (9.1) + +Ensure that the database is installed, started, and that you have configured +an nextcloud user with complete rights to create, read, update and delete +tables and records, as this user will be used to create tables at nextcloud +first run, and then to manage users, groups, quota and more during ongoing +operations. For security considerations, we strongly suggest that you do not +use the database root account to access the database from nextcloud. + +You may install the nextcloud database on a separate server from the nextcloud +installation. In fact, for the largest nextcloud installations, we recommend +installing a MySQL cluster environment, with multiple load balanced nextcloud +application servers out front, all accessing the shared cluster. Depending +on your hardware, security considerations, and expected load, you may want +to separate the database from the app server. Simply note the username, +password, and address of the database, and enter this information into the +form within nextcloud at first run, and nextcloud will create the instance and +tables. + + +Configuring PHP +--------------- +There are a few default configuration settings that you will want to change +to enable nextcloud to operate more effectively as a self hosted file sync +and share server. When uploading through the web client, nextcloud is +governed by PHP and Apache. As a default, PHP is configured for only 2 MB +uploads. This is not entirely useful, so it is important to increase these +variables to the sizes you want to support on your server. + +Point your favorite text editor over to your php.ini file. On different +server operating systems this is located in different places. On openSUSE +and Ubuntu, for example, this is located in /etc/php5/apache2/php.ini +Note: the commend 'find / -name php.ini' can help you locate your php.ini on +Linux. + +On Windows, you can find this file within C:/Program Files (x86)/PHP/PHP.ini + +Edit the php.ini file, looking for: +- upload_max_filesize = 500 MB +- post_max_size = 600 MB + +The defaults for these values are quite small, so change them to to 500 MB +and 600MB, or 1G and 1.2G, for example, and you have adjusted the maximum +file size that can be uploaded at one time. + +Make sure you restart your Apache server after these changes, or it will not +take affect! + +Note: You will want these two values to be about the same size, with +post_max_size slightly larger to account for headers in the uploaded files. + +If you find later that files keep timing out on upload, you may want to also +change these settings in the php.ini file: +max_input_time +memory_limit +max_execution_time +post_max_size + +See below for more on php.ini settings from radlinks.com. + +PHP.ini settings +- upload_max_filesize and post_max_size + Files are usually POSTed to the webserver in a format known as + 'multipart/form-data'. The post_max_size sets the upper limit on the + amount of data that a script can accept in this manner. Ideally this value + should be larger than the value that you set for upload_max_filesize. + + It's important to realize that upload_max_filesize is the sum of the sizes + of all the files that you are uploading. post_max_size is the + upload_max_filesize plus the sum of the lengths of all the other fields in + the form plus any mime headers that the encoder might include. Since these + fields are typically small you can often approximate the upload max size + to the post max size. + + According to the PHP documentation you can set a MAX_UPLOAD_LIMIT in your + HTML form to suggest a limit to the browser. Our understanding is that + browsers totally ignore this directive and the only solution that can + impose such a client side restriction is our own Rad Upload Applet + +- memory_limit + When the PHP engine is handling an incoming POST it needs to keep some of + the incoming data in memory. This directive has any effect only if you + have used the --enable-memory-limit option at configuration time. Setting + too high a value can be very dangerous because if several uploads are + being handled concurrently all available memory will be used up and other + unrelated scripts that consume a lot of memory might effect the whole + server as well. + +- max_execution_time and max_input_time + These settings define the maximum life time of the script and the time + that the script should spend in accepting input. If several mega bytes of + data are being transfered max_input_time should be reasonably high. You + can override the setting in the ini file for max_input_time by calling the + set_time_limit() function in your scripts. + + +Additional IIS Server Upload Step +--------------------------------- +Now you have to go back to IIS manager and make one last change to enable +file uploads on the webserver larger than 30MB. +- Go to the start menu, and type in 'iis manager' +- Open IIS Manager +- Select the website you want enable to accept large file uploads +- In the main window in the middle double click on the icon "Request filtering" +- Once the window is opened you will see a bunch of tabs across the top +- On the far right, select "Edit Feature Settings" and modify the + "Maximum allowed content length (bytes)" + In here, you can change this to up to 4.1 GB. + Note: this entry is in BYTES, not KB! +- Click OK and then restart IIS. + + +Installing nextcloud Server +-------------------------- +For Linux we HIGHLY RECOMMEND using your package manager! +- Go to https://download.nextcloud.com/server/ +- Select "nextcloud Server", "rpm" and click "Download" + You will be taken to the openSUSE Build Service, where you can select the + OS for the installation, which will take you to the appropriate + repositories for your OS version. When stepping through the installation + process, be sure you remain subscribed to these repositories so that you + can get the latest updates through the package manager!!! + +These steps will download and install two packages and their dependencies on +your server: +- nextcloud +- nextcloud-3rdparty +Both are required for nextcloud to function, but for licensing reasons, they +must be packaged separately. + +You may also download nextcloud-unsupported packages from the same +repository, following the instructions above, if you would like the +unsupported packages installed as well. These are the packages that are +provided by the community, but for which nextcloud, Inc. does not provide +support. They are not required for nextcloud to function. + + +Install from source tarball: +Through a manual process of download and extracting the files. There are a +few Linux distributions, as well as Mac and Windows that have no alternative +and will need to use this method. If you are running Linux and can use the +package manager, we recommend you do so because using a Tarball, all updates +and maintenance will have to be handled manually. +- Go to https://download.nextcloud.com/server/releases/ +- Select "nextcloud Server", ".tar.bz2" and click "Download" + Once downloaded, extract the archive to a folder of your choice Copy the + archive contents into the root of your web server + - Linux: varies, but examples are /srv/www/htdocs/ or /var/www/html + - Windows: c:/inetpub/wwwroot/ + +You have just installed the nextcloud application on your server! + +Note: there are Linux specific download and installation instructions +available for the Community Edition at +https://docs.nextcloud.org/server/9/admin_manual/ +if you need additional details on how to install nextcloud. If you follow those +instructions, just be sure you download the nextcloud application from +https://download.nextcloud.com/server/releasses/ the latest stable and supported version of +nextcloud will always be available at this URL. + + +Configuration +------------- +After successfully installing nextcloud, you will find a folder in your web +server root called /nextcloud. The entire nextcloud application is installed +in that directory. + + +- Changing Permissions + Once nextcloud is installed, you need to change permissions so that the web + server user can access and update the nextcloud application and + configuration files. + + To do this, go to your root web server directory and change the owner of + the files to the web server. + openSUSE / SLES + - Go to /srv/www/htdocs/ + - type: chown -R wwwrun:www nextcloud + Fedora / RHEL + - Go to /var/www/html/ + - type: chown -R apache:apache nextcloud + - If you are running SELinux, please read + /usr/share/doc/nextcloud/README.SELinux + Ubuntu + - Go to /var/www + - type: chown -R www-data:www-data nextcloud + Windows + - Navigate your windows explorer over to C:/inetpub/wwwroot/nextcloud (or + your installation directory if you selected something different). + - Right click and select properties. + - Click on the security tab, and click the button "to change permissions, + click edit". + - Select the "users" user from the list, and check the box "write". + - Apply these settings and close + + +Performing First Run +-------------------- +Once all of this is completed, it is time to run the "first run" wizard. +Point your browser over to the instance of nextcloud you are setting up, e.g. +http://localhost/nextcloud + +This will open the nextcloud "first run" wizard. On this page, you enter your +desired nextcloud username and password for the administrator, and expand the +little arrow. + +You can select the appropriate database here, and enter the database user +name and password, instance name and address. We recommend MySQL as the +database, on this page enter the user name and password you setup for MySQL +earlier, and pick any name for the database instance. + +Note: the nextcloud admin password and the MySQL password CANNOT be the same +in any way! + +Click next, and the nextcloud server will write to the /nextcloud/config +folder the config.php file, connect to the database and create the tables +nextcloud needs, and then nextcloud should have you logged in as the admin +user in the nextcloud interface. Now you an get started exploring nextcloud, +creating other users and more from the web interface. + + +Configuring SSL +--------------- +Configuring SSL within nextcloud is not difficult, as nextcloud is a web based +application. Simply get a certificate and follow your procedures for +enabling SSL on your web server. If you have are looking for procedures to +follow, you may follow a number of standard online tutorials at Apache.org +or a variety of other sites. They will demonstarte how to create a self +signed certificate, or how to generate a certificate request and get a +certificate authority signed certificate, where to place the certificate on +the server, and how to enable SSL in the Apache configuration files. As +nextcloud is a web application, following these procedures will enable you to +effectively use SSL, and if you choose, leverage SSL on all of your client, +mobile app and web based access to the server. Just remember to close HTTP +and open HTTPS on your server firewall if you would like to force all +clients to use HTTPS. + + +Desktop Clients +--------------- +While all OwnCloud Editions can be accessed by our desktop clients, +only the Business and Enterprise Editions come with support subscriptions +for the client. You can gain access to any of the clients on the +http://dnextcloud.com/download website. + + +Windows Client Installation +--------------------------- +- Go to http://nextcloud.com/download +- Find the nextcloud Windows Client and click Download +- Once downloaded, run the installation wizard + +Note: On some Norton Antivirus systems, Norton raises a flag on this client +software. It doesn't say the software is a virus, just that it is unknown to +Norton. Essentially, this is new software from nextcloud, and Norton doesn't +have a record in their database for the file, so it quarantines it. It is a +simple matter to remove it from the quarantine and install the client. + +- Once the client is installed, find the application in your Start menu, and + open it. You will be notified that "There is no nextcloud connection + available. Please configure one by clicking on the tray icon." In your + system tray, right click on the nextcloud icon and click configure. This + will take you to the "Create an nextcloud Connection" wizard. + +- Here you enter your nextcloud instance address and click next, and then + enter your user name and password and click next. + +- The desktop client will attempt to conenct to your server, and if + successful, will try to create the c:/users/'your user name'/nextcloud + directory, and will link this directory to a new folder on the server in + your account it will create called "syncclient". This is the automated + setup wizard. Note: if either of these folders exist already, it will not + link them for security reasons. + +- If you want to add folders to Sync on the server, simply right click and + select "Add Folder". This will take you to the "Express Upload Source" + directory, where you can select other folders to sync on your PC, and + connect them to other folders you create on your server. + +Note: you cannot sync a parent directory, and then sync a child directory, +as you would be syncing two directories that are essentially the same, which +the server does not allow. + +From here, any files or folders put into any synced directory will be +automatically uploaded the server, and server files will automatically be +downloaded to the client. If a conflict is detected, the sync client will +create a file with "conflict" in the name, and you can view and +determine which file to keep and which to delete. + +Also note, if you wish to share files, all sharing is enables through the +web client. Log in to an account through a web browser, and select the files +and folders to share, and they will be shared automatically with other users +of nextcloud, or publicly with a read only, shared public link. + + +Linux Client Installation +------------------------- +- Go to http://nextcloud.com/download +- Find the nextcloud Linux Clients and click Download +- Select the operating system you are working with, the version, and click + the button +- Your package manager will automatically download the client and any + dependencies not already installed. Remember to select to stay subscribed + to the repository so that updates can be easily installed on the Linux + client!!! + +- Once the client is installed, find the application in your Start menu, and + open it. You will be notified that "There is no nextcloud connection + available. Please configure one by clicking on the tray icon." In your + system tray, right click on the nextcloud icon and click configure. This + will take you to the "Create an nextcloud Connection" wizard. + +- Here you enter your nextcloud instance address and click next, and then + enter your user name and password and click next. + +- The desktop client will attempt to connect to your server, and if + successful, will try to create the /home/'your user name'/nextcloud + directory, and will link this directory to a new folder on the server in + your account it will create called "syncclient". This is the + automated setup wizard. Note: if either of these folders exist already, it + will not link them for security reasons. + +- If you want to remove an existing folder, or add folders to Sync to the + server, simply right click on the nextcloud system try icon and select + "Add Folder". This will take you to the "Express Upload Source" + directory, where you can select other folders to sync on your + PC, and connect them to other folders you create on your server. + +Note: you cannot sync a parent directory, and then sync a child directory, +as you would be syncing two directories with the same content, which the +server does not allow. + +From here, any files or folders put into any synced directory will be +automatically uploaded the server, and server files will automatically be +downloaded to the client. If a conflict is detected, the sync client will +create a file with "conflict" in the name, and you can view and +determine which file to keep and which to delete. + +If you wish to share files, all sharing is enables through the web client. +Log in to an account through a web browser, and select the files and folders +to share, and they will be shared automatically with other users of +nextcloud, or publicly with a read only, shared public link. + + +Enjoy your own Cloud! + diff --git a/README.SELinux b/README.SELinux new file mode 100644 index 0000000..c5d9594 --- /dev/null +++ b/README.SELinux @@ -0,0 +1,26 @@ +If you are running Fedora 16 with SELinux enabled, you need to relabel the +ownCloud installation directory to allow the webserver to store files there. + +To do that, execute the following commands as user root AFTER you installed +ownCloud: + +# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/data' +# restorecon '/var/www/html/nextcloud/data' +# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/config' +# restorecon '/var/www/html/nextcloud/config' + +To remove the ownCloud directory label execute the following commands as +user root AFTER you uninstalled ownCloud: + +# semanage fcontext -d -t httpd_sys_rw_content_t '/var/www/html/nextcloud/data' +# restorecon '/var/www/html/nextcloud/data' +# semanage fcontext -d -t httpd_sys_rw_content_t '/var/www/html/nextcloud/config' +# restorecon '/var/www/html/nextcloud/config' + +Note: all of the above applies only to the default policies. If you modified + them, please give the webserver write-access to the directories + /var/www/html/nextcloud/data and /var/www/html/nextcloud/config + +Note: for non-Fedora / Redhat systems running SELinux the policy might be + called differently. + diff --git a/apache_secure_data b/apache_secure_data new file mode 100644 index 0000000..d86f38d --- /dev/null +++ b/apache_secure_data @@ -0,0 +1,17 @@ +Alias /nextcloud "@DATAPATH@/" + + Options +FollowSymLinks + AllowOverride All + + + Dav off + + + SetEnv HOME @DATAPATH@ + SetEnv HTTP_HOME @DATAPATH@ + + + + # just in case if .htaccess gets disabled + Require all denied + diff --git a/nextcloud-9.0.53.tar.bz2 b/nextcloud-9.0.53.tar.bz2 new file mode 100644 index 0000000..6d4c59a --- /dev/null +++ b/nextcloud-9.0.53.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ceade1f7b3c8692b792ebfd2c5c7259ff6a0a26d3bd46a762ee6f5cdf052904 +size 28549436 diff --git a/nextcloud.changes b/nextcloud.changes new file mode 100644 index 0000000..6f37d23 --- /dev/null +++ b/nextcloud.changes @@ -0,0 +1,24 @@ +------------------------------------------------------------------- +Thu Jul 21 15:17:28 CEST 2016 - asemen@suse.de + +- upstream update to version 9.0.53 (bsc#989998) + + +------------------------------------------------------------------- +Fri Jul 8 17:31:32 UTC 2016 - ecsos@opensuse.org + +- make apache_secure_data more restrictiver +- add missing .user.ini +- move README and README.SELinux to docdor to fix message code + integrity check + +------------------------------------------------------------------- +Tue Jul 5 15:16:35 CEST 2016 - asemen@suse.de + +- upstream update to version 9.0.52 + +------------------------------------------------------------------- +Fri Jul 1 14:02:22 CEST 2016 - asemen@suse.de + +- initial build nextcloud 9.0.51 + diff --git a/nextcloud.spec b/nextcloud.spec new file mode 100644 index 0000000..b968516 --- /dev/null +++ b/nextcloud.spec @@ -0,0 +1,214 @@ +# +# spec file for package nextcloud +# +# + +# +%if 0%{?suse_version} +%define apache_serverroot /srv/www/htdocs +%define apache_confdir /etc/apache2/conf.d +%define apache_docdir /usr/share/doc/packages +%define apache_user wwwrun +%define apache_group www +%else +%if 0%{?fedora_version} || 0%{?rhel_version} || 0%{?centos_version} +%define apache_serverroot /var/www/html +%define apache_confdir /etc/httpd/conf.d +%define apache_user apache +%define apache_group apache +%define __jar_repack 0 +%else +%define apache_serverroot /var/www +%define apache_confdir /etc/httpd/conf.d +%define apache_user www +%define apache_group www +%endif +%endif + +%define oc_user %{apache_user} +%define oc_dir %{apache_serverroot}/%{name} +%define ocphp_bin /usr/bin + +%if 0%{?rhel} == 600 || 0%{?rhel_version} == 600 || 0%{?centos_version} == 600 +%define statedir /var/run +%else +%define statedir /run +%endif +Name: nextcloud + +# Downloaded from https://download.nextcloud.com/server/releases/nextcloud-9.0.51.zip + +%define base_version 9.0.53 +Version: %{base_version} +Release: 0 +Source0: nextcloud-%{version}.tar.bz2 +Source1: apache_secure_data +Source2: README +Source3: README.SELinux +Source4: robots.txt +Url: http://www.nextcloud.com +BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildArch: noarch +Summary: A safe home for all your data, community-driven, free & open source +License: AGPL-3.0 +Group: Productivity/Networking/Web/Utilities + +%if 0%{?suse_version} +BuildRequires: fdupes +%if 0%{?suse_version} != 1110 +# For all SUSEs except SLES 11 +Requires: apache2 apache2-mod_php5 php5 >= 5.3.3 sqlite3 php5-sqlite php5-mbstring php5-zip php5-json php5-posix curl php5-curl php5-gd php5-ctype php5-xmlreader php5-xmlwriter php5-zlib php5-pear php5-iconv +BuildRequires: apache2 unzip +%else +# SLES 11 requires +# require mysql directly for SLES 11 +Requires: apache2 apache2-mod_php53 php53 >= 5.3.3 mysql php53-sqlite php53-mbstring php53-zip php53-json php53-posix curl php53-curl php53-gd php53-ctype php53-xmlreader php53-xmlwriter php53-zlib php53-pear php53-iconv +BuildRequires: apache2 unzip +%endif +%endif + +#Requires: curl %{name}-3rdparty +%if 0%{?suse_version} +# SUSE does not include the fileinfo module in php-common. +Requires: php-fileinfo +%if 0%{?suse_version} != 1110 +Recommends: php5-mysql mysql php5-imagick +%else +Recommends: php53-mysql mysql php53-imagick +%endif +%else +Requires: mysql +%endif + +%description +A safe home for all your data, community-driven, free & open source +Access & share your files, calendars, contacts, mail & more from any device, on +your terms + +%prep +%setup -q -n %{name} +cp %{SOURCE2} . +cp %{SOURCE3} . +cp %{SOURCE4} . +#%%patch0 -p0 + +%build + +%install +# no server side java code contained, alarm is false +idir=$RPM_BUILD_ROOT/%{apache_serverroot}/%{name} +mkdir -p $idir +mkdir -p $idir/data +mkdir -p $idir/search +cp -aRf * $idir +cp -aRf .htaccess $idir +cp -aRf .user.ini $idir +# $idir/l10n to disappear in future +#rm -f $idir/l10n/l10n.pl + +if [ ! -f $idir/robots.txt ]; then + install -p -D -m 644 %{SOURCE4} $idir/robots.txt +fi + +# create the AllowOverride directive +install -p -D -m 644 %{SOURCE1} $RPM_BUILD_ROOT/%{apache_confdir}/nextcloud.conf +ocpath="%{apache_serverroot}/%{name}" +sed -i -e"s|@DATAPATH@|${ocpath}|g" $RPM_BUILD_ROOT/%{apache_confdir}/nextcloud.conf + +# not needed for distro packages +rm -f ${idir}/indie.json + +%if 0%{?suse_version} +# link duplicate doc files +%fdupes -s $RPM_BUILD_ROOT/%{apache_serverroot}/%{name} +%endif + +%postun + +%pre +# avoid fatal php errors, while we are changing files +# https://github.com/nextcloud +# +# We don't do this for new installs. Only for updates. +# If the first argument to pre is 1, the RPM operation is an initial installation. If the argument is 2, +# the operation is an upgrade from an existing version to a new one. +if [ $1 -gt 1 -a ! -s /tmp/apache_stopped_during_nextcloud_install ]; then + echo "%{name} update: Checking for running Apache" + # FIXME: this above should make it idempotent -- a requirement with openSUSE. + # it does not work. +%if 0%{?suse_version} && 0 +%if 0%{?suse_version} <= 1110 + rcapache2 status | grep running > /tmp/apache_stopped_during_nextcloud_install + rcapache2 stop +%else + service apache2 status | grep running > /tmp/apache_stopped_during_nextcloud_install + service apache2 stop +%endif +%endif +%if 0%{?fedora_version} || 0%{?rhel_version} || 0%{?centos_version} + service httpd status | grep running > /tmp/apache_stopped_during_nextcloud_install + service httpd stop +%endif +fi +if [ -s /tmp/apache_stopped_during_nextcloud_install ]; then + echo "%{name} pre-install: Stopping Apache" +fi + +if [ $1 -eq 1 ]; then + echo "%{name}-server: First install starting" +else + echo "%{name}-server: installing upgrade ..." +fi +# https://github.com/nextcloud +if [ -x %{ocphp_bin}/php -a -f %{oc_dir}/occ ]; then + echo "%{name}: occ maintenance:mode --on" + su %{oc_user} -s /bin/sh -c "cd %{oc_dir}; PATH=%{ocphp_bin}:$PATH php ./occ maintenance:mode --on" || true + echo yes > %{statedir}/occ_maintenance_mode_during_nextcloud_install +fi + + +%post +if [ $1 -eq 1 ]; then + echo "%{name} First install complete" +else + echo "%{name} Upgrade complete" +fi + + +%if 0%{?suse_version} +# make sure php5 is not in APACHE_MODULES, so that we don't create dups. +perl -pani -e 's@^(APACHE_MODULES=".*)\bphp5\b@$1@' /etc/sysconfig/apache2 +# add php5 to APACHE_MODULES +perl -pani -e 's@^(APACHE_MODULES=")@${1}php5 @' /etc/sysconfig/apache2 +%endif + +if [ -s /tmp/apache_stopped_during_nextcloud_install ]; then + echo "%{name} post-install: Restarting Apache" + ## If we stopped apache in pre section, we now should restart. -- but *ONLY* then! + ## Maybe delegate that task to occ upgrade? They also need to handle this, somehow. +%if 0%{?suse_version} +%if 0%{?suse_version} <= 1310 + rcapache2 start +%else + rcapache2 restart apache2.service +%endif +%endif +%if 0%{?fedora_version} || 0%{?rhel_version} || 0%{?centos_version} + service httpd start +%endif +fi +rm -f /tmp/apache_stopped_during_nextcloud_install + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,wwwrun,www) +%exclude %{apache_serverroot}/%{name}/README +%exclude %{apache_serverroot}/%{name}/README.SELinux +%doc README README.SELinux +%{apache_serverroot}/%{name} +%config %attr(0644,root,root) %{apache_confdir}/nextcloud.conf + + +%changelog diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..416ed18 --- /dev/null +++ b/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: /